CS101: Introduction to Computer Science I: unit 2: 2.1: Fundamental Concepts of OO Programming'
means understanding what we are dealing with. Before designing a solution, it needs to be clear about the relevant entities, their properties, and their inter-relationships. It also needs to be able to verify understanding. This can involve customers and end-users, since they‟re likely to be subject-matter experts
Analysis
The object-oriented approach uses to development the object-oriented projects that use the object-oriented programming like:
C++ and Java
A ___________diagram shows which classes exist in the business (during analysis) or in the system itself (during subsystem design)
Class Diagram (Analysis Level)
is about deciding how the static parts should collaborate.
Dynamic modeling
Reuse enables faster development. Object-oriented programming languages come with rich libraries of objects, and code developed during projects is also reusable in future projects.
Faster development
Object-oriented programs typically involve more lines of code than procedural programs.
Larger program size
The reuse of software also lowers the cost of development. Typically, more effort is put into the object-oriented analysis and design, which lowers the overall cost of development.
Lower cost of development
Depends on the experience of the team and complexity of projects through the numbers of objects.
Object-Oriented Approach
Object-oriented programs are typically slower than procedure-based programs, as they typically require more instructions to be executed.
Slower programs
involves deciding what the logical or physical parts of the system should be and how they should be connected together. Roughly speaking describes how we construct and initialize the system, Typically, we produce at least one model during each phase of the development.
Static modeling
The thought process involved in object-oriented programming may not be natural for some people, and it can take time to get used to it. It is complex to create programs based on interaction of objects. Some of the key programming techniques, such as inheritance and polymorphism, can be challenging to comprehend initially.
Steep learning curve
The problem of Traditional approach using classical life cycle
Traditional Approach
Specification testing of a unit is done primarily from the object protocol
black box testing
Construction is thus divided into two phases.
design and implementation
Planning, Scheduling, Resourcing, Workflows, Activities, Roles, Artifacts, Education
methodology will address
The software engineering development has two ways to develop the projects that: traditional approach and __________-________________ approach
object-oriented
This means that we use our knowledge of the inside of the unit to test it.
white box testing
In ________________ ______________, a system is viewed as a set of objects. All object-orientation experts agree that a good methodology is essential for software development, especially when working in teams.
. OBJECT-ORIENTED APPROACH
The ________________ Diagram, The only difference is that design-level class diagrams tend to use more of the available notation, because they are more detailed.
Class Diagram (Design Level)
A ___________________ diagram, as its name suggests, shows collaborations between objects
Communication Diagram
We build our system through _____________based on the Analysis Model and the Requirements Model created by the analysis process. The _____________process lasts until the coding is completed and the included units have been tested.
Construction
In the deployment phase, are concerned with getting the hardware and software to the end users, along with manuals and training materials. This may be a complex process, involving a gradual, planned transition from the old way of working to the new one
Deployment
A _________________ diagram shows how the completed system will be deployed on one or more machines. A deployment diagram can include all sorts of features such as machines, processes, files and dependencies.
Deployment Diagram
In the__________ phase, will work out, how to solve the problem. In other words, make decisions based on experience, estimation, and intuition, about what software will write and how will deploy it. System design breaks the system down into logical subsystems (processes) and physical subsystems (computers and networks), decides how machines will communicate, and chooses the right technologies for the job, and so on
Design
Faster development of software and lower cost of development allows more time and resources to be used in the verification of the software. Although quality is dependent upon the experience of the teams, object-oriented programming tends to result in higher-quality software.
Higher-quality software:
In this phase is writing pieces of code that work together to form subsystems, which in turn collaborate to form the whole system. The sort of the task which is carried out during the implementation phase is „Write the method bodies for the Inventory class, in such a way that they conform to their specification
Implementation
For the reasons mentioned above, object-oriented software is also easier to maintain. Since the design is modular, part of the system can be updated in case of issues without a need to make large-scale changes.
Improved software maintainability
Object-oriented programming is modular, as it provides separation of duties in object-based program development. It is also extensible, as objects can be extended to include new attributes and behaviors. Objects can also be reused within an across applications. Because of these three factors - modularity, extensibility, and reusability - object-oriented programming provides improved software-development productivity over traditional procedure-based programming techniques.
Improved software-development productivity:
When the system is deployed, it has only just been born. A long life stretches before it, during which it has to stand up to everyday use - this is where the real testing happens. The sort of the problem which is discovered discover during the maintenance phase is „When the log-on window opens, it still contains the last password entered.' As the software developers, we normally interested in maintenance because of the faults (bugs) that are found in software. Must find the faults and remove them as quickly as possible, rolling out fixed versions of the software to keep the end users happy. As well as faults, users may discover deficiencies (things that the system should do but doesn‟t) and extra requirements (things that would improve the system)
Maintenance
There are problems that lend themselves well to functional-programming style, logic-programming style, or procedure-based programming style, and applying object-oriented programming in those situations will not result in efficient programs.
Not suitable for all types of problems
Need to more time than Traditional approach and leads that to more cost.
Object-Oriented Approach
The object-oriented software life cycle identifies the three traditional activities of analysis, design, and implementation.[
Object-Oriented Approach
Used to develop Object-oriented Projects that depends on Object Oriented programming.
Object-Oriented Approach
Uses UML notations likes: use case, class diagram, communication diagram, development diagram and sequence diagram
Object-Oriented Approach
_________________capture is about discovering what is going to achieve with a new piece of software and has two aspects. Business modeling involves understanding the context in which software will operate. A system requirement modeling (or functional specification) means deciding what capabilities the new software will have and writing down those capabilities
Requirements
A _____________ diagram shows interactions between objects. Communication diagrams also show interactions between objects, but in a way that emphasizes links rather than sequence. _______________ diagrams are used during subsystem design, but they are equally applicable to dynamic modeling during analysis, system design and even requirements capture.Time flows down the page on a sequence diagram.
Sequence Diagram
is an often-ignored, or at least often neglected phase. The term specification is used in different ways by different developers. For example, the output of the requirements phase is a specification of what the system must be able to do; the output of the analysis is a specification of what is dealing with, and so on
Specification
When the software is complete, it must be tested against the system requirements to see if it fits the original goals. It is a good idea for programmers to perform small tests as they go along, to improve the quality of the code that they deliver
Testing
______________is an activity to verify that a correct system is being built.__________ is traditionally an expensive activity, primarily because many faults are not detected until late in the development.To do effective ______________ we must have as a goal that every ________ should detect a fault.
Testing
_____________________ mode is the actual implementation (code) of the system
The Implementation
1.) The Analysis Model is not sufficiently formal. 2.) Adaptation must be made to the actual implementation environment. 3.) We want to do internal validation of the analysis results.
There are three main reasons for a construction process
Depends on the size of projects and type of projects.
Traditional Approach
Needs to large duration sometimes to development the large projects.
Traditional Approach
Used to develop the Traditional Projects that uses procedural programming
Traditional Approach
Uses common processes likes: analysis, design, implementation, and testing.
Traditional Approach
By the mid-1990s, the best-known methodologies were those invented by Ivar Jacobson, James Rumbaugh and Grady Booch. Each had his own consulting company using his own methodology and his own notation. By 1996, Jacobson and Rumbaugh had joined Rational Corporation, and they had developed a set of notations which became known as the__________________
Unified Modeling Language
_________ _____________ is performed to test a specific unit, where a unit can be of varying size from a class up to an entire subsystem.
Unit testing
a systematic way of doing things. It is a repeatable process that we can follow from the earliest stages of software development through to the maintenance of an installed system. As well as the process, a methodology should specify what we‟re expected to produce as we follow the process. A methodology will also include recommendation or techniques for resource management, planning, scheduling and other management tasks. Good, widely available methodologies are essential for a mature software industry.
methodology
The ________- _____________ approach to software development has a decided advantage over the traditional approach in dealing with complexity and the fact that most contemporary languages and tools are
object-oriented
_________________ also enhances the independence of each object, making them easier to test as standalone units.
polymorphism
Java, C++, Objective C, Perl, Python, Javascript, Simula, Modula, Ada, Smalltalk, and the Common Lisp Object Standard.
popular object-oriented programming languages
_____________________is a further refinement and formalization of the Analysis Model where consequences of the implementation environment have been taken into account
the design model
The __________ approach uses traditional projects that used in development of their procedural programming like C, this approach leads software developers to focus on Decomposition of larger algorithms into smaller ones.
traditional