2. A set of processes, structured to be applied to develop a software projects, in order to produce a product or service, which meets customer expectations and gain customer Satisfaction, Gladness and Ecstasy. Lifecycle Methodology
3.
4.
5. Organization Eagle View of using Methodologies ISO Is it engaged in a paper based system? Does it have all the standard processes? CMMI Is it mature enough? Does it define Processes well enough to be understood? Does it reach to the goals of each key process area? Project Management Does it have the Knowledge, Techniques, Tools and Skills to be applied on diverse activities of the project? Lifecycle model Does it run the project activities within a certain lifecycle that results in a Customer Ecstasy, Gladness or Satisfaction?
6. ISO 9000 does not guarantee the compliance (and therefore the quality) of the final product. It just certifies that a consistent business processes are being applied. ISO 9001 is one of the standards in the ISO 9000 family ISO9001 does not guarantee that the company delivers superior or even decent quality ISO 9001 certifies that the company engaged internally in a paperwork that was prescribed by the standard ISO 12207 is the standard of the software lifecycle processes Compliance with ISO9001 for the software sector and its special problem of defining a lifecycle There are 23 Processes, 95 Activities, 325 Tasks and 224 Outcomes 3 types of processes (Basic, Support & Organizational) Primary life cycle processes : -Acquisition process -Supply process -Development process -Operation process -Maintenance process Supporting life cycle processes: -Audit process -Configuration Management -Joint review process -Documentation process -Quality assurance process -Problem solving process -Verification process -Validation process Organizational processes: -Management process -Infrastructure process -Improvement process -Training process ISO Overview
7. Activities Initiation System, Business and needs ISO 12207 Acquisition process Request for proposal Contract milestones and supplier auditing Prepare contract Supply or develop. Negotiate changes Update contract Supplier monitoring Acceptance and completion Define acceptance criteria Conduct configuration management
8. Activities Define Software requirement ISO 12207 Development process Create High Level Design Create Module Design Coding Execute Module Test Execute Integration Test Execute System Test
9. Today there exist many process libraries for software development . As example, we have MSF (Microsoft Framework), RUP (Rational Unified Process), and OpenUP (Open Unified Process). Most of the process libraries are augmented by process editing tools and process support tools. Process Editing Tools: One of the common problems of process definition is inconsistencies and hence errors. Process editing tools make editing visual, structured and consistent. EPF (Eclipse Process Framework), Rational Method composer are a famous examples. Process Support Tools: MSF is supported by TFS. A sophisticated and integrated solution for software teams to collaborate and organize their work. RUP also come with many of Rational sophisticated tools such as Rational Requisite Pro to manage requirements, Rational ClearCase for version control. EPF as an open source can be supported by many open source tools such as OSRT for requirements management and Subversion for configuration management. Process support tools manage the work items greatly and can easily provide detailed reporting and statistics, however it requires a steep learning curve and formal training. Reference: http://ahm507.blogspot.com/2008/02/openup-and-eclipse-process-framework.html Microsoft Team System Lifecycle Libraries/Frameworks Open Unified Process Rational Unified Process + RUP
10. Waterfall Model This is also known as Classic Life Cycle Model (or) Linear Sequential Model (or) Waterfall Method. This model has the following activities. Business (user perspective) View Feasibility (ability to be done) Study client/server technology, the number of tiers needed for the package architecture, the database design, the data structure design etc... are all defined in this phase. The software should be developed to accommodate changes that could happen during the post implementation period
11. Prototyping Model This is a cyclic version of the linear model. In this model, once the requirement analysis is done and the design for a prototype is made, the development process gets started. Once the prototype is created, it is given to the customer for evaluation. The customer tests the package and gives his/her feed back to the developer who refines the product according to the customer's exact expectation. After a finite number of iterations, the final software package is given to the customer. In this methodology, the software is evolved as a result of periodic shuttling of information between the customer and developer . This is the most popular development model in the contemporary IT industry. Most of the successful software products have been developed using this model - as it is very difficult (even for a whiz kid!) to comprehend all the requirements of a customer in one shot. There are many variations of this model skewed with respect to the project management styles of the companies. New versions of a software product evolve as a result of prototyping.
12. RAD - Rapid Application Development Model The RAD model is a linear sequential software development process that emphasizes an extremely short development cycle. The RAD model is a "high speed" adaptation of the linear sequential model in which rapid development is achieved by using a component-based construction approach. 1. Business modeling The information flow among business functions is modeled in a way that answers the following questions: What information drives the business process? What information is generated? Who generates it? Where does the information go? Who processes it? 2. Data modeling The information flow defined as part of the business modeling phase is refined into a set of data objects that are needed to support the business. The characteristic (called attributes) of each object is identified and the relationships between these objects are defined. 3. Process modeling The data objects defined in the data-modeling phase are transformed to achieve the information flow necessary to implement a business function. Processing the descriptions are created for adding, modifying, deleting, or retrieving a data object. 4. Application generation The RAD model assumes the use of the RAD tools like VB, VC++, Delphi etc... rather than creating software using conventional third generation programming languages. The RAD model works to reuse existing program components (when possible) or create reusable components (when necessary). In all cases, automated tools are used to facilitate construction of the software. 5. Testing and turnover Since the RAD process emphasizes reuse, many of the program components have already been tested. This minimizes the testing and development time.
13. Component Assembly Model Object technologies provide the technical framework for a component-based process model for software engineering. The object oriented paradigm emphasizes the creation of classes that encapsulate both data and the algorithm that are used to manipulate the data. If properly designed and implemented, object oriented classes are reusable across different applications and computer based system architectures. Component Assembly Model leads to software reusability. The integration/assembly of the already existing software components accelerate the development process. Nowadays many component libraries are available on the Internet. If the right components are chosen, the integration aspect is made much simpler.
18. EUP – Enterprise Unified Process Tailor RUP prior of tailoring EUP The EUP is an extension to the RUP. The figure depicts the EUP lifecycle. People familiar with RUP can see that the extensions include two new phases, Production and Retirement, and several new disciplines: Operations and Support and the seven enterprise disciplines (Enterprise Business Modeling, Portfolio Management, Enterprise Architecture, Strategic Reuse, People Management, Enterprise Administration, and Software Process Improvement).