Four Laws of Advanced Software Engineering

Four Laws of Advanced Software Engineering

This is a Template please make a copy before using. Please note that file name and page numbers are automatically printed in the footer please do not alter in anyway. Assignment 1 Glass’s law: is the process that determines the properties a particular System should have. The requirements process generates the Information on which the design will be based . Requirement determines Where a system is to be used, by whom, and what services it should provide. It has paramount important to determine what trade-offs can be made in case of Conflicting requirement.

Improper, incomplete or erroneous definition of requirement cause problems in many projects the reasons behind incomplete definition are different needs of different users groups , natural conflicts of interest and difficulty in prioritization among the conflicting Boehm’s first law: the requirements definition and design has most errors and design error less serious than requirement errors. Identifying these errors in early stage of development is difficult unless developer knows the correct domain of work and in most of the case the errors in requirement definitions and design are detected during the installation stage. emoving these error at the later stage of software development is costly since cost for change in the system grow as the development cycle proceeds the subsequent investments are based on decisions made before and number of people affected and involve in error removal might grow from less than ten to exponentially one of the example of implementation errors occur for Fortran programs in an aerospace application where the design was done by people with good domain knowledge which in turn increase the cost of error removal .

Davis law: Models are very useful from to describe systems they are an intellectual concept, but can be transformed in a visible representation, model study the static structure of the system objects use the logical structure of the data and dynamic structure of the tasks and processes. Models are indirect views or abstractions leaving out those things that are not important. It improves the conceptual knowledge, most user do not need them. Davis study was based on qualitative using subjective rather than objective criteria.

For example automating a book distribution company: including ordering, shipment, accounting; possibly human resources, payroll, inventory, conveyor, belts and robots to move book. Using several different approaches like object oriented analysis and function oriented analysis and different aspects are emphasized by each approach. As such different tools should be used for different types of job. Waterfall methodology The waterfall method is a variation of the systems development life cycle model used in software engineering. It’s a classical approach to linear and sequential approach to software design.

Each stage of the waterfall method has distinct goals and once those goals are met the development moves on the major drawback of this model is once a stage has been completed there is no going back to previous stage. Each stage can be designated to a separate team allowing for greater control on the project, the whole process can have deadlines set for each stage which enable to deliver the project on time. Water fall model establishing following stages Requirements, to design creation, to program implementation, to system test, to release to customer . The waterfall model had little or no feedback between stages.

Requirements Phase consists of analysing the problem or need for which the software is being developed and specifies requirements, stating what the software must do. In addition to stated requirements, requirements are derived from higher-level requirements and statements of need. Design Phase the software structure is defined. Technical approaches are chosen and problems are solved conceptually the two design phase, preliminary design the initial software architecture is developed And In the detailed design, functional modules are defined, along with user interfaces and interfaces between modules.

Implementation Phase the programming or coding takes place to execute the software design. This is often iterative, with unit and integration testing being performed after a software build, and the results used in another round of programming and testing the functionality and requirement three separate phases of testing involves : Unit Testing, Integration Testing, and Acceptance Testing. The first two may be part of a repeated Cycle of coding and testing, while acceptance testing verifies requirements specifications . Deployment Phase the software installation in the intended system and users are trained in its operation.

In this stage software development effort is complete. Maintenance Phase includes fixing errors and modifying or upgrading the software to provide additional functionality [pic] (http://images. google. com. au/images? ndsp=18&um=1&hl=en&q=rapid+prototyping&start=360&sa=N) Rapid Prototyping Model Rapid prototyping has long been used in the development of one-off programs, based on the familiar model of the chemical engineer’s pilot plant. More recently it has been used to Prototype larger systems in two variants—the “throwaway” model and the “operational” Model, which is really the incremental model .

This development Process produces a program that performs some essential or perhaps typical set of [pic] (http://images. google. com. au/images? ndsp=18&um=1&hl=en&q=rapid+prototyping&start=360&sa=N) In traditional Water fall methodology lacks the error detection and rectification during each stage which would lead in increasing the cost but the requirement deficiencies are minimise during the requirement stage of the methodology by taking system review periodically as show in figure. [pic] (http://images. google. com. au/images? ndsp=18&um=1&hl=en&q=rapid+prototyping&start=360&sa=N)

If requirement team known and provide a slightly different requirement that meet most of their needs and could have been easier to achieve. The requirement team work is done before the implementation team takes over and communication between the two teams is less so if the requirement documents can only capture a small fraction of the knowledge and capture the information dealing with quality or performance. Advantages Cost and schedule estimates may be lower and more accurate. Details can be addressed with more engineering effort if software is large or complex. Disadvantages

All risks must be dealt with in a single software development effort. Because the model is sequential, there is only local feedback at the transition between phases. Corrections must often wait for the maintenance phase. In Rapid prototyping the information-gathering technique useful in seeking user reactions, suggestions, innovations, and revision plans Information gathered allows analysts to set priorities and redirect plans inexpensively, with a minimum of disruption thus fullfulling the requirements and tend to reduce the errors during the requirement and design phase thus the subsequent phases would have less number of errors.

Prototyping is a superb way to facilitate feedback about the proposed system and about how readily it is fulfilling the information needs of its users. The first step of prototyping is to estimate the costs involved in building a module of the system. Work in manageable modules – a manageable module is one that allows users to interact with its key features but can be built separately from other system modules. Build the prototype rapidly – putting together an operational prototype both rapidly and early in the SDLC allows the analyst to gain valuable insight into how the remainder of the project should go.

Modify the prototype – creating it in modules that are not highly interdependent. Stress the user interface – for many users the interface is the system. Water fall example When the air traffic control system development was initiated, three-tier client server systems and airline deregulation did not have to be considered. The environmental and technical changes occurred during the project and had to be taken into account within the system being built. Various problem encounters during development.

Attempts to impose a micro, or detailed, methodology model on the development process have not worked because the development process is still not completely defined, acting as though the development process is defined and predictable results in being unprepared Rapid prototyping example • To develop the computer-based grammar tutor for foreign students, types of information which would be useful to students, the types of feedback that should be given, and the general structure of the tutorial would become very complex, and could not test the program until it was in relatively finished form.

Haven’t found the essay you want?