As you learned in the first course in this series, there is no standard software development process.
The process that you will use in this course is a generalization of the common elements of the leading software development methodologies.
If you understand these essential elements, you will be able to customize the application of the general methodology to your specific domain or even choose one of the current methodologies that best supports your needs.
Let us review the phases of the project life cycle.
The SlideShow below names and describes the phases making up the project life cycle for developing software:
Project initiation: Document the expectations of the user
Problem analysis: Define the resources of the problem domain
Architectural analysis: Select the architectural approach for the solution
Object design: Select and define the implementation for the software solution
Construction: Build, buy, integrate code to satisfy the design
Installation: Put the application into production
Maintenance: Enhance/revise the production application
The Project Initiation Phase is the 1st phase in the Project Management Life Cycle, as it involves starting up a new project.
Achitectural Analyis: Architectural analysis is used in software architecture to evaluate a system architecture.
Object Design: Object-oriented design is the process of planning a system of interacting objects for the purpose of solving a software problem. It is one approach to software design.
Maintenance: Software maintenance in software engineering is the modification of the software after it has been delivered, to correct faults and improve performance or other attributes.
For example, in Figure 2-2 the name attribute is assigned the UML data type String using the format name : String.
end_date is assigned a class called Date from a library of classes provided by the Java programming language. The Date data type actually holds a reference to an object designed to represent information about a date and time. status is assigned a reference to an application-specific enumeration called Event_Status, which defines a set of valid literal values for event status, such as scheduled and cancelled.