c20d9d26ce42517f5c3cac04afa96a65.ppt
- Количество слайдов: 20
Advanced Computing G 80 The software development process Julio Medina Ingeniería de Software y Tiempo Real Universidad de Cantabria
Software development process. A software development process is the specification of a sequenced set of activities performed by a collaborating set of workers resulting in a coherent set of project artifacts, one of which is the desired software system. The objective of a process is to make predictable the amount of effort required to: n n n Predict and evaluate costs Attain and keep a certain level of quality Predict the time needed for development Universidad de Cantabria Advanced Computing: The Software Development Process J. L. Medina 1
Nature of software applications There is no unique and universal optimum development process. It is an asset of an enterprise that needs to be configured and tune according to nature of the product and the level of experience of the company. Kinds of applications that impact in the development process: n n Monoprocessor: They execute in a single computer. They do not communicate with other nodes and usually neither with other applications. i. e. a word processor. Embedded: They execute in a particularly restricted computer whose external interfaces follow the metaphors and behavioral patterns of a different purpose device. They usually are co-design with the hardware. i. e. A washing machine. Real Time: They have in their specifications timing requirements and are usually hold a reactive nature. i. e. A radar control system. Distributed: They execute their constituent parts in different processors, and hence use networks as elements for communication. i. e. Messenger, Dropbox, etc. Universidad de Cantabria Advanced Computing: The Software Development Process J. L. Medina 2
Objectives of a development process To be a project template that guides practitioners along the sequence of tasks that are required and the products that must be generated. To improve quality of the final product: n n Reduce the number of failures Lower the severity of defects Enhance reusability Improve the stability of the development and the cost of maintenance. Improve predictability of the project regarding: n n The amount of work required The time needed for its development Generate the proper information for the various stakeholders so that they can make an effective monitoring of the process. Universidad de Cantabria Advanced Computing: The Software Development Process J. L. Medina 3
Basic elements in a project. Planning Working lines Working Plan Define Plan Development Tools Organize Activity Realize Support Work in Results Worker/Role Create Generate Use Especify Formalize Gestiona Product Identify Guide Pattern Universidad de Cantabria Defects & problems Advanced Computing: The Software Development Process J. L. Medina Management & Configuration 4
Scalability is an important property in a project since they may have very different dimensions. It describes how linearly it varies the effort required to realize a project with regard to its complexity. When the project complexity increases: The required levels of abstraction rise n They increase the needs for communication between project teem members. n It becomes harder to find/discover errors. The ideal is to have a linear growing of the effort, not an exponential one. n Some means to achieve scalability: n n Arrange different time scales for the generation of the activities. Include specific options in guides and forms tailored to the characteristics of the projects. Universidad de Cantabria Advanced Computing: The Software Development Process J. L. Medina 5
Tecnolgical keys in model driven development processes. Iterative Development Frameworks Visual Modeling Automated Requirements. Based Testing Executable Models Bi-unicity Model-Code Universidad de Cantabria Advanced Computing: The Software Development Process J. L. Medina 6
Main tasks in a software development process. Understand the application objectives in its domain. Formulate a working plan Create and manage the documentation. Catch the requirements. Design and build the product. Test and validate the product. Delivery and maintenance of the product. Universidad de Cantabria Advanced Computing: The Software Development Process J. L. Medina 7
Levels of maturity of development processes. Primitive: There is not. Programmed: It has a sequence of stages defined as well as the documents that will be delivered out of each. Systematic: It is formulated in a systematic way. Administrated: It includes criteria to quantify the performance of each phase and of the full process. Optimized: There are control parameters that enable the optimization of resources and labors needed for each project. Universidad de Cantabria Advanced Computing: The Software Development Process J. L. Medina 8
Linear process model. Tunnel process: n n n No process No control Just for small projects. Universidad de Cantabria Advanced Computing: The Software Development Process J. L. Medina 9
The waterfall model Time Requirements Analysis Design Advance Code implementation Debugging Modules test Integration System tests Maintenance Implementation Universidad de Cantabria High cost error recovery Advanced Computing: The Software Development Process J. L. Medina 10
Problems of the waterfall process. The real test is performed when all is designed and done. It assumes that before starting the process the product is fully defined. When mismatches/errors are discovered in the maintenance phase, the problem is to be adapted to the solution, not vice Integration tests 7º versa. . . Modules Test 8% Coding 7% Design 5% Specification 3º Analysis 3º Maintenance 67% Cost of development phases for a typical application Universidad de Cantabria Advanced Computing: The Software Development Process J. L. Medina 11
Spiral process The application is made in successive phases by evolving from simpler to more complex systems. In technology, as in nature, complex systems have arisen as evolution of simpler ensembles. Object oriented programming facilitates evolutionary programming: n Prototypes may be designed with only some objects. n And/or with limited functionality. Universidad de Cantabria Advanced Computing: The Software Development Process J. L. Medina 12
Characteristics of an iterative process An iterative process is conceived as the construction of successive executable prototypes that go evolving from basic requirements up to the final fully functional desired system. This strategy tends to post the more risky problems early. Along the development process, real (partially working) prototypes are shown to the users and clients: n n n The user faces the product in a real experience. The client participates as a collaborator in the project. The teem is continuously motivated with closer in time objectives. The integration of components/modules is progressive. Progress is measured/monitored in a tangible way, not on paper. Universidad de Cantabria Advanced Computing: The Software Development Process J. L. Medina 13
N minicascade. Cycles in an iterative process reproduce basically a cascade process, but subject to much simpler objectives. Analysis Design Coding N times Universidad de Cantabria Test Advanced Computing: The Software Development Process J. L. Medina 14
Discovery of requirements Universidad de Cantabria Advanced Computing: The Software Development Process J. L. Medina 15
Planning the iterations Universidad de Cantabria Advanced Computing: The Software Development Process J. L. Medina 16
A microcycle iteration in the ROPES process. Assembly & test of the application prototype sis Microcycle sig Universidad de Cantabria n An aly Trans ROPES De Optimize the model to Satisfy the Qo. S requirements Planning and evaluation of the iteration Party Elaboration of the modules for the prototype lation Test Identify & specify the required properties of the application Advanced Computing: The Software Development Process J. L. Medina 22
Detailed phases in the microcycle spiral. Translation Modules Coding test Integration & Test Validation Detailed design Successive prototypes Party Mechanistic design Analysis of requirements Design Architectural design Object analysis Universidad de Cantabria System engineering Advanced Computing: The Software Development Process Análisis J. L. Medina 23
Sinchronization management / technical development. Iteration Preliminar iteration Architecture iteration Development iteration Delivery Iteration Result Sketch Architecture prototype Phase Viability Study Preparation Architecture prototype Development prototype Construction alpha/beta version Beta version Transfer Fully deployed Time Universidad de Cantabria Advanced Computing: The Software Development Process J. L. Medina 35


