Você está na página 1de 4

An Engineering Approach: Software is an art as well as science.

We can use an optimizing compiler as a tool to generate programs that run fast on the machine. We can include special sort or search routines as techniques for saving time or space in our system. Building a system is similar to building a house. 1. Building a house Requires more than one person on the constructing team- size, complexity. First step- conference between the owner and constructing company (people). During construction- owner visits sites and tell if any changes required. During construction and before the owners move in several components of the house are tested.

Looking more close to this process:1. Many people are working at same time, documentation is essential. 2. Possibly of owner to modify the house design a. Unavailability of the materials specified. b. Come across new ideas. c. Availability or financial constraints. d. Items or design planned becoming infeasible. 3. contractor must provide for future use blue prints. wiring & plumbing diagrams. Instruction manuals appliances. i.e. owner can modify or repair later. To summarize the construction process a) Determining & analyzing the requirements. b) Producing & documenting overall design. c) Producing detailed specifications. d) Identifying and designing components. e) Building each component of the house. f) Integrating the components. g) Continuing maintenance. Participants must remain flexible - allow changes. Construction site visited by building inspectors quality checking standards. We cannot prescribe the activities of house exactly. Complex task. Need for expert judgment & creativity.

Members of the development team:-

Customers, Users, & Developers major role in definition & creation. Analysis includes one or more requirement analysts to work with customer. Analysts work with designers - designers work with programmers line of codes. Testing first testing is done by the programmers. Then testers are used to find faults Testers work with the implementation team to verify 5. When development team is comfortable with the quality attention turns to customers. Therefore test team and customer work together. Then trainers show users how to use the system. 6. If faults discovered maintenance team fixes them. Maintenance team can have analysts, designers, programmers, testers, trainers. 7. Librarians prepare and store documents used during requirement specification, design, program documentation, training manuals, test data, schedules. 1. 2. 3. 4. Waterfall model: First model where stages are depicted as cascading from one another. One developing stage should be completed before the next stage. Presents a very high level view and it suggests to developers the sequence of events they should expect to encounter. This model is basis for software development deliverables in U.S Department of Defense. Easy to explain to the customer who are not familiar with software development; it makes explicit with intermediate products.

Drawbacks It does not reflect the way code is developed. No guidance to managers and developers on how to handle the changes. Its derived from the hardware world. Software is creation process not a manufacturing process. Tells nothing about the typical back and forth activities that lead to creating a final product. Developers may thrash from one activity to the next and then back again, as they strive to gather knowledge about the problem and how the proposed solution addresses it.

Prototype Model

Prototyping is a sub process; a prototype is a partially developed product that enables customers and developers to examine some aspect of the proposed system and decide if it is suitable or appropriate for the finished product. A small portion of some key requirements ensure that the requirements are consistent feasible and practical. Similarly parts of the design may be prototyped therefore access alternatives design strategies & decide which is best for a particular project. Often the user interface is built and tested as a prototype therefore user understand what the new system will be like and designers get a better sense of how users like to interact with the system. Prototyping is useful for verification (ensures that each function works correctly) and validation (ensures that the system has implemented all of the requirements. Prototyping need not be solely and adjunct of a water fall, it can it self be a basis for an effective process model. Constructed quickly to understand or clarify issues. Requirements or design require repeated investigation to insure that the developers, users and customers have a common understanding. The overall goal of prototyping is o Reducing risk o Uncertainty in development System development may begin with a nominal set of requirements supplied by the customer & users, then alternatives are explored. Requirements are revised until a common agreement is reached with customers and users. The initial design is revised until developers, users and customers are happy with the result.

Sometimes considering design alternative reveals a problem with the requirements & developers drop back to the requirements activates to reconsider and change the requirements specification.

Adv

Early visibility of the prototype gives users an idea of what the final system looks like Encourages active participation among users and producer Enables a higher output for user Cost effective (Development costs reduced) Increases system development speed Assists to identify any problems with the efficacy of earlier design, requirements, analysis and coding activities Helps to deliver the product in quality easily

Disadv. User can get too involved whereas the program cannot be to a high standard Structure of system can be damaged since many changes could be made Not suitable for large applications

SRS

Você também pode gostar