This action might not be possible to undo. Are you sure you want to continue?
Set – 1 (60 Marks) Answer all Questions TEN marks Book ID: B0808 1. Explain the following development models: a. Serial or Linear Sequential b. Incremental 2. Describe the Object Interface Design. 3. Explain the following testing strategies: a. Top-Down Testing b. Bottom-Up Testing c. Thread testing d. Stress testing Book ID: B0809 4. Describe the following Risk – Reduction Models: a. Prototyping Model b. Spiral Model c. Clean Room Model 5. Describe the Capability Maturity Model. 6. Describe the following with respect to Software Technology: a. Exponential Growth in Capability b. Business Problem-Solving Optimization c. The E-Business Revolution d. Portability Power e. Connectivity Power Each question carries
After establishing an overall architecture. and modifications are made accordingly. • Customer can see the working version only at the end. After every iteration any faulty piece software can be identified easily as very few changes are done after every iteration. There is always certain degree of natural uncertainty at beginning of each project. Based on customer feedback. 2. 3.Ans. which can already be used by the customer. Thus any changes suggested here are not only difficult to incorporate but also expensive. The series of releases is referred to as “increments”. with identifiable deliveries to the next phase Analysis-->Design-->Coding-->Testing Advantages • Simple and a desirable approach when the requirements are clear and well understood at the beginning • It provides a clear cut template for analysis. Serial or Linear Sequential: It is also called “Classic Life Cycle” or “Waterfall” model or “Software Life Cycle” suggests a systematic and sequential approach to software development that begins at the system level and progresses through analysis. After the first increment. where the waterfall model is incrementally applied. coding. a core product is delivered. 1 (a) Explain the following development models: a. • Difficult and costlier to change when the changes occur at later stages. This model does not affect anyone's business values because they provide core of the software which customer needs. with increments being delivered until the complete product is delivered. Problems may arise related to system architecture. • It is an enforced disciplined approach Disadvantages • It is difficult for the customers to state the requirements clearly at the beginning. a plan is developed for the next increments. 2. testing and support. Resulting cost may exceed the cost of the organization. . This process continues. This may result in disaster if any undetected problems are precipitated to this stage Ans. which will indeed help that person to keep run his business. design. It is easier to test and debug as testing and debugging can be performed after each iteration. Advantages 1. system is developed and delivered in increments. 1 (b) Incremental: The incremental Model is an evolution of the waterfall model. 4. The waterfall model derives its name due to the cascading effect from one phase. Disadvantages 1. The incremental philosophy is also used in the agile process model. coding. with each increment providing more functionality to the customers. design. In this model each phase well defined starting and ending point. If the requirements initially were thought to be stable but at later stages are realized to be unstable then the increments have to be withdrawn and have to be reworked. testing and support. 3.
. products or orders.Early skeletal Program allows demonstrations and boosts morale. . 3 Explain the following testing strategies: State and action alternatives are visible Ans. . have an OOUI . representation of test cases is easier.the objects being lines. 3(a) Top-Down Testing: In this approach testing is conducted from main module to sub module.Stub Modules are often more complicated than they first appear to be. Disadvantages: . If the sub module is not developed a temporary program called STUB is used for simulate the sub module.Once the I/O functions are added. Many vector drawing applications. or re-align it).Allows one to think that design and testing can be overlapped. In an OOUI.Test conditions may be impossible. .Advantageous if major flaws occur toward the top of the program. • • Conceptual model is consistent with system image • Interface should include mappings that reveal relationships among task stages • User should receive continuous feedback • Strive for consistency • Enable short-cuts for frequent users • Informative feedback • Design dialogs to yield closure • Offer simple error handling • Permit easy reversal of actions • Support internal locus of control • Reduce short-term memory load on user In computing an object-oriented user interface (OOUI) is a type of user interface based on an object-oriented programming metaphor.Observation of test output is more difficult. circles and canvases. the user interacts explicitly with objects that represent entities in the domain that the application is concerned with. Dave Collins defines an OOUI as demonstrating three characteristics: Users perceive and act on objects Users can classify objects based on how they behave In the context of what users are trying to do. The user may explicitly select an object. If a business application has any OOUI. Advantages: . copy. or very difficult. for example. .Ans. Ans.Induces one to defer completion of the testing of certain modules. . or invoke other actions upon it (such as to move. alter its properties (such as size or color). 2 Describe the Object Interface Design. the user may be selecting and/or invoking actions on objects representing entities in the business domain such as customers. . all the user interface objects fit together into a coherent overall representation. representation of test cases in stubs can be difficult.Stub modules must be produced .Before the I/O functions are added. . to create.
Driver Modules must be produced. if the main module is not developed a temporary program called DRIVERS is used to simulate the main module. . The disadvantage of stress testing is the amount to time to use to prepare for the test and the amount of resources used for it. To reduce these resources for testing you can run a tool called a stressor.Advantageous if major flaws occur toward the bottom of the program. Stress testing need to break the system by overloading the large number of transactions. Basically test the application to ensure how system is behaved when large volume of data interacts with the system. . It will be done before UAT towards end of the developmental phase. CPU availability. Disadvantages: . Normal and abnormal of data was processed during the specific time frame Test data can create either with the data used in the production environment or the set of data can create on your own.Observation of test results is easier. 3 (c) Thread testing: A variation of top-down testing where the progressive integration of components follows the implementation of subsets of the requirements. . 3 (d) Stress testing: Stress testing is a fundamental quality assurance activity that should be part of every significant software testing effort.Test conditions are easier to create. and network bandwidth. However it will helps to take up the decision to whether we make the application live based on the results which will help to reduce the risk. . disk space. 3 (b) Bottom up testing: In this approach testing is conducted from sub module to main module. Advantages: . The resources to be stressed generally include internal memory.The program as an entity does not exist until the last module is added. you run your tests under conditions of reduced machine or system resources. The objective of the stress testing is basically stress the application and check the applications before it is put in to the production environment. We can also check whether the sufficient disk space is allocated to the application. The key idea behind stress testing is simple: instead of running manual or automated tests under normal conditions. as opposed to the integration of components by successively lower levels Ans.Ans. Ans. We can also check whether any communication link failure come across at the time of the processing the transactions. People you are involving of entering instructions need to the end user you is going to use the application one it is put in to production.
based on the comments supplied by the users. noting its strengths and weaknesses. • The customer doesn’t need to wait long as in the Linear Model. Disadvantages • Customer could believe the prototype as the working version. It is an iterative. The preceding steps are iterated as many times as necessary. tested. There are several steps in the Prototyping Model: 1. This model works best in scenarios where not all of the project requirements are known in detail ahead of time. 7. 4 (a) Prototyping Model: The Prototyping Model is a systems development method (SDM) in which a prototype (an early approximation of a final system or product) is built. 4 Describe the following Risk – Reduction Models: Ans. and what should to be removed. A preliminary design is created for the new system. The first prototype is modified. 8. until the users are satisfied that the prototype represents the final product desired. is a systems development lifecycle (SDLC) model used in information technology . 4 (b) Spiral Model: The spiral model. The second prototype is evaluated in the same manner as was the first prototype. They fail to realise that no consideration was given to the overall quality of the software in the rush to develop the prototype Ans. • Developer also could make the implementation compromises where he could make the quick fixes to the prototype and make is as a working version. 6. what needs to be added. based on the final prototype. trial-and-error process that takes place between the developers and the users. and represents an approximation of the characteristics of the final product. This is usually a scaled-down system. Advantages • It could serve as the first system. The developer collects and analyzes the remarks from the users. The final system is constructed. also known as the spiral lifecycle model. This usually involves interviewing a number of users representing all the departments or aspects of the existing system. 4. 2. 5. 3. 9. • Feedback from customers are received periodically and the changes don’t come as a last minute surprise.Ans. The final system is thoroughly evaluated and tested. The users thoroughly evaluate the first prototype. A first prototype of the new system is constructed from the preliminary design. and a second prototype of the new system is constructed. Routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime. • Often clients expect that a few minor changes to the prototype will more than suffice their needs. and then reworked as necessary until an acceptable prototype is finally achieved from which the complete system or product can now be developed. The new system requirements are defined in as much detail as possible.
The preceding steps are iterated until the customer is satisfied that the refined prototype represents the final product desired. process assessment and improvement. The steps in the spiral model can be generalized as follows: 1. and technology transfer and adoption. weaknesses. and represents an approximation of the characteristics of the final product. The spiral model is favoured for large. or any other factor that could. 9. based on the refined prototype. (3) planning and designing the second prototype. in the customer's judgment. A second prototype is evolved by a fourfold procedure: (1) evaluating the first prototype in terms of its strengths. The final system is constructed. operating-cost miscalculation. This is usually a scaled-down system. and. if necessary. 4. usage-based testing to certify software fitness for use. Routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime. This usually involves interviewing a number of users representing all the external or internal users and other aspects of the existing system. and complicated projects. . The CRM is expressed in terms of a set of 14 Clean room processes and 20 work products. Risk factors might involve development cost overruns. The new system requirements are defined in as much detail as possible. design. It is intended as a guide for Clean room project management and performance. 7. A first prototype of the new system is constructed from the preliminary design. 6. and correctness verification with statistical. with their emphasis on rigorous engineering discipline and focus on defect prevention rather than defect removal. Clean room projects have reported substantial gains in quality and productivity. At the customer's option. Clean room combines mathematically based methods of software specification. This report defines the Clean room Software Engineering Reference Model. result in a less-than-satisfactory final product. (4) constructing and testing the second prototype. 5. The Clean room name is borrowed from hardware Clean rooms. 2. 3. This model of development combines the features of the prototyping model and the waterfall model. (2) defining the requirements of the second prototype. Ans. A principal objective of the Clean room process is development of software that exhibits zero failures in use. 8. The final system is thoroughly evaluated and tested. expensive.(IT). the entire project can be aborted if the risk is deemed too great. 4 (c) Clean Room Model: Clean room software engineering is a theorybased team-oriented process for development and certification of high-reliability software systems under statistical quality control. A preliminary design is created for the new system. another prototype is developed from it according to the fourfold procedure outlined above. The existing prototype is evaluated in the same manner as was the previous prototype. or CRM. and risks.
SEI was established to optimize the process of developing. The model describes a five-level evolutionary path of increasingly organized and systematically more mature processes. CMM was developed and is promoted by the Software Engineering Institute (SEI). 5 Describe the Capability Maturity Model. Department of Defense (DoD). SEI was founded in 1984 to address software engineering issues and. The main difference between the two systems lies in their respective purposes: ISO 9001 specifies a minimal acceptable quality level for software processes. and is not considered to be repeatable. The Capability Maturity Model (CMM) is a methodology used to develop and refine an organization's software development process. a research and development center sponsored by the U. and integration. At the defined level. The ISO 9000 standards specify an effective quality system for manufacturing and service industries. because processes would not be sufficiently defined and documented to allow them to be replicated. CMM's Five Maturity Levels of Software Processes At the initial level. basic project management techniques are established. one of the ISO9000series of standards specified by the International Organization for Standardization (ISO). Because the processes involved are equally applicable to the software industry as a whole. and maintaining heavily softwarereliant systems for the DoD. and successes could be repeated. in a broad sense. an organization monitors and controls its own processes through data collection and analysis. SEI advocates industry-wide adoption of the CMM. At the managed level. to advance software engineering methodologies. processes are disorganized. processes are constantly being improved through monitoring feedback from current processes and introducing innovative processes to better serve the organization's particular needs .S. More specifically. At the optimizing level. At the repeatable level. Success is likely to depend on individual efforts. acquiring. an organization has developed its own standard software process through greater attention to documentation. standardization. even chaotic. The CMM is similar to ISO 9001.Ans. ISO 9001 deals specifically with software development and maintenance. while the CMM establishes a framework for continuous process improvement and is more explicit than the ISO standard in defining the means to be employed to that end. defined. and documented. because the requisite processes would have been made established.
Black Box Testing c. 3. Agile Software Development 5. 6. Human driven software engineering Each question carries TEN marks . accepts the completed form and sends it to the identified destination. Describe the following with respect to Software Testing: a. Draw possible data flow diagram of system design for the following application. Testing Documentation and Help Facilities.Winter 2011 Master of Computer Application (MCA) – Semester 3 MC0071 – Software Engineering– 4 Credits (Book ID: B0808 & B0809) Assignment Set – 2 (60 Marks) Answer all Questions Book ID: B0808 1. Describe the following with respect to Software Design: a. Design strategies. Boundary Value Analysis d. Testing GUIs e. The design process b. 2. Describe the following with respect to Software Testing: a. Describe the following: a. Part of the electronic mail system which presents a mail form to a user. Open Source development Model b. Control Structure Testing b. Design description d. Importance of people in problem solving process b. Describe Classic Invalid assumptions in the context of Process Life Cycle models. Design Methods c. Book ID: B0809 4.
1 Describe the following with respect to Software Design: Ans. The design concepts provide the software designer with a foundation from which more sophisticated methods can be applied. They can deliver significant cost reductions because they use standard notations and ensure that standard design documentation is produced. Structured methods have been applied successfully in many large projects. quality. schedule and cost.g. Control Hierarchy . Software Architecture . After the purpose and specifications of software are determined.The program structure can be divided both horizontally and vertically.It is a representation of the logical relationship among individual elements of data. CASE tools have been developed to support particular methods. Modularity . one or several instructions of a given program are decomposed into more detailed instructions. Data Structure . Information Hiding . software developers will design or employ designers to develop a plan for a solution. The use of structured methods involves producing large amounts of diagrammatic design documentation. . Software Procedure . Abstraction and Refinement are complementary concepts. 2.A program structure that represents the organization of a program component and implies a hierarchy of control. 6. They are: 1. typically in order to retain only information which is relevant for a particular purpose. Ans. 3. Structural Partitioning . Budgen (1993) describes some of the most commonly used methods such as structured design. 1 (b) Design Methods: A more methodical approach to software design is purposed by structured methods. structured systems analysis. Refinement . which are sets of notations and guidelines for software design. Jackson System Development and various approaches to object-oriented design. 4. Abstraction . in terms of performance. Horizontal partitions define separate branches of modular hierarchy for each major program function. 7.Modules should be specified and designed so that information contained within a module is inaccessible to other modules that have no need for such information. It includes low-level component and algorithm implementation issues as well as the architectural view.It refers to the overall structure of the software and the ways in which that structure provides conceptual integrity for a system.Software architecture is divided into components called modules.It focuses on the processing of each modules individually 9. e. A good software architecture will yield a good return on investment with respect to the desired outcome of the project. 5. 8. Vertical partitioning suggests that control and work should be distributed top down in the program structure. 1 (a) The design process: Software design is a process of problem solving and planning for a software solution. In each step.Ans. A hierarchy is developed by decomposing a macroscopic statement of function in a stepwise fashion until programming language statements are reached.Abstraction is the process or result of generalization by reducing the information content of a concept or an observable phenomenon. A set of fundamental design concepts has evolved.It is the process of elaboration.
starting with a high-level view and progressively refining this into a more detailed design. So structured methods often support some of the following models of a system: (1) A data-flow model where the system is modeled using the data transformations. which take place as it. Designs are documented in a set of design documents that describes the design for programmers and other designers. which is used to describe the logical data. Methods such as Jackson Structured Programming and the Warnier-Orr method are techniques of functional decomposition where the structure of the data is used to determine the functional structure used to process that data. The System State is centralized and shared between the functions operating on that state. rules and design guidelines. Two design strategies are summarized as follows: (1) Functional design: The system is designed from a functional viewpoint. is processed. therefore. These allow the intention of the designer to be expressed rather than the details of how the design is to be implemented. (3) A structural model where the system components and their interactions are documented. (2) An entity-relation model. 1 (c) Design description: A software design is a model system that has many participating entities and relationships. 1 (d) Design strategies: The most commonly used software design strategy involved decomposing the design into functional components with system state information held in a shared data area. notations. usually. The term ‘structured methods’ suggests.A mathematical method (such as the method for long division) is a strategy that will always lead to the same result irrespective of who applies the method. an object-use model which shows how objects are used by other objects. and so on. that designers should normally generate similar designs from the same specification. A structured method includes a set of activities. object oriented design has been widely adopted. (4) If the method is object-oriented it will include an inheritance model of the system. Ans. (2) Object-oriented design: The system is viewed as a collection of objects rather than as functions. Ans. It acts as a basis for detailed implementation. It is most useful for giving an overall picture of the system. structures being used. a model of how objects are composed of other objects and. report formats. (3) Informal text much of the information that is associated with a design cannot be expressed formally. A graphical view of a design is an abstract view. it serves as a communication medium between the designers of sub-systems. it provides information to system maintainers about the original intentions of the system designers. This design is used in a number of different ways. Since from late 1980s that this alternative. (2) Program description languages these languages (PDLs) use control and structuring constructs based on programming language constructs but also allow explanatory text and (sometimes) additional types of statement to be used. Object-oriented design is based on the idea of information hiding and has . There are three main types of notation used in design documents: (1) Graphical notations: These are used to display the relationships between the components making up the design and to relate the design to the real-world system is modeling. Information about design rationale or non-functional considerations may be expressed using natural language text.
boolean parenthesis errors. set all other loops to minimum values. Simple condition: Boolean variable or relational expression. and (n+1) passes through the loop where n is the maximum number of allowed passes. In simple loops. It involves testing of both relational expressions and arithmetic expressions. nested. Types of errors in condition testing are boolean operator errors. If a condition is incorrect. n. Test paths are selected according to the location of definitions and uses of variables in the program. 2 (a) Control Structure Testing: Control structure testing is a group of whitebox testing methods. work outwards and continue until all loops tested. conduct simple loop testing on inner loop. treat as nested loops. Loops are fundamental to many algorithms and need thorough testing. possibly proceeded by a NOT operator. Loops can be defined as simple. Boolean expression: It is a condition without Relational expressions. JSD is a design method that falls somewhere between function-oriented and object-oriented design. concatenated. only one or two passes through loop. m passes through loop where m is than n. it can be used in a targeted fashion for areas of software that are suspect. start with inner loop.been described by Meyer. relational operator errors. boolean variable errors. test cases that can be applied are skip loop entirely. Ans. In nested loops. DATA FLOW TESTING Data flow testing method is effective for error protection because it is based on the relationship between statements in the program according to the definition and uses of variables. use simple loop testing. and unstructured. If dependent. then at least one component of the condition is incorrect. CONDITION TESTING It is a test case design method. Boolean operators and parentheses. and arithmetic expression errors. redesign the class of loops. It is unrealistic to assume that data flow testing will be used extensively when testing a large system. However. (n-1). Compound condition: It is composed of two or more simple conditions. In concatenated loops. and Jacobsen. It works on logical conditions in program module. Booch. . and many others. if loops are independent. In unstructured loops. LOOP TESTING Loop testing method concentrates on validity of the loop structures.
Ans. If I'm working on a pie chart graph. the problem is not always (or even commonly) solvable by making the GUI as stupid as possible. on the one hand. On the other hand. Advantages and disadvantages: The black-box tester has no "bonds" with the code. but it is insufficient to guard against certain risks. Specification-based testing: Specification-based testing aims to test the functionality of software according to the applicable requirements. This level of testing usually requires thorough test cases to be provided to the tester. Thus. so they do not play into this discussion. 2 (c) Boundary Value Analysis: Boundary value analysis is a software testing technique in which tests are designed to include representatives of boundary values. Getting developers to test is not easy.Ans. nor should they have to." black-box testers find bugs where programmers do not. The values could be either input or output ranges of a software component. GUIs that are sufficiently simple to not require testing are also uninteresting. 2) BVA assumes the variables to be truly independent which is not always possible. Contrary to some opinion. and only sees the output from. So the . "Ask and you shall receive. the output value (or behavior). those hook-ups need to be verified. black-box testing has the advantage of "an unaffiliated opinion".2 (b) Black Box Testing: Black-box testing treats the software as a "black box"—without any knowledge of internal implementation. boundary value analysis. black-box testing has been said to be "like a walk in a dark labyrinth without a flashlight. the tester inputs data into. I don't really want to know the details of connecting to the database and making queries simply to get an environment set up for testing. and/or (2) some parts of the back-end are not tested at all. Since these boundaries are common locations for errors that result in software faults they are frequently exercised in test cases Limitations of BVA: 1) Boolean and logical variables present a problem for Boundary Value Analysis. and the disadvantage of "blind exploring". and a tester's perception is very simple: a code must have bugs. on the other. especially if the testing itself requires additional learning. who then can simply verify that for a given input. 3) BVA test cases have been found to be rudimentary because they are obtained with very little insight and imagination. and even if that complexity is limited to listeners (code responding to GUI changes) and updates (GUI listening to code state changes). either "is" or "is not" the same as the expected value specified in the test case. Specification-based testing is necessary. Using the principle. exploratory testing and specification-based testing. Ans. fuzz testing. Any GUI of sufficient utility will have some level of complexity. Values on the minimum and maximum edges of an equivalence partition are tested. 2 (d) Testing GUIs: GUIs need testing. As a result. there are situations when (1) a tester writes many test cases to check something that could have been tested by only one test case. Therefore. the test object. Developers will not want to learn the details of specific application procedures when it has no bearing on their immediate work. all-pairs testing. model-based testing. Black-box testing methods include: equivalence partitioning." because the tester doesn't know how the software being tested was actually constructed.
examines the document for editorial clarity. You must have seen the difference between following the user guide and getting results or behaviours that do not coincide with those predicted by the document. graphics) conducive to understanding and quick assimilation of information? Are all error messages displayed for the user described in more detail in the document? If hypertext links are used.g. usually by some obvious attribute like its label. typefaces. Some of the guidelines are discussed here: Does the documentation accurately describe how to accomplish each mode of use? Is the description of each interaction sequence accurate? Are examples accurate and context based? Are terminology. "click" or "select row". e. 2 (e) Testing Documentation and Help Facilities: Errors in documentation can be as devastating to the acceptance of the program as errors in data or source e code. users the documentation in conjunction with the use of the actual program. documentation testing should be a meaningful part of every software test plan. That means Look up a component.framework for testing GUIs should require no more special knowledge than you might need to use the GUI manually. menu descriptions. Documentation testing can be approached in two phases. For this reason. and system responses consistent with the actual program? Is it relatively easy to locate guidance within the documentation? Can troubleshooting be accomplished easily with the documentation? Are the document table of contents and index accurate and complete? Is the design of the document (layout. indentation. The first phase. are they accurate and complete . Perform some user action on it. The second phase. Ans. formal technical review. live test.
.Ans. 3 Draw possible data flow diagram of system design for the following application. Part of the electronic mail system which presents a mail form to a user. accepts the completed form and sends it to the identified destination.
Like other models it attempts to glean the strengths from currently used software engineering models. in turn inform the project manager of enhancements and once they have been coded into the application a user base is identified for product testing. the focus of problem solving will necessarily be narrowed to the software context. in terms of their potential to influence the solution of problems. 2. Ans. It promotes adaptive planning. evolutionary development and delivery. 4 (b) Agile software development: Agile software development is a group of software development methodologies based on iterative and incremental development. cross-functional teams. and users or debuggers. thereby reducing the role of people. and this cycle continues until the project has matured into a stable releasable product. Second Assumption: Software or Business Processes: A second significant unspoken assumption has been that the software development process is independent . 1. and rapid prototype models by creating a cyclic communications path between the project maintainer. The Agile Manifesto  introduced the term in 2001. The developers. Ans. It is a conceptual framework that promotes foreseen interactions throughout the development cycle. money. an Internet repository for Open Source projects. while excluding the weakness of those models. This feat has been accomplished through open communications and sharing of ideas between major developers of the Open Source movement. 5 Describe Classic Invalid assumptions in the context of Process Life Cycle models. knowledge. where requirements and solutions evolve through collaboration between self-organizing.Ans. a time-boxed iterative approach. Four unspoken assumptions that have played an important role in the history of software development are considered next. etc. The models structure improves on the incremental. Granted this supposition. For example. The user base also has the opportunity to suggest design flaw corrections and propose new features they would like the maintainer to incorporate into the project. development team. 4 (a) Describe the following with respect to Software Testing: Ans. (a) Open Source development Model: Open Source’s software model can be defined as a refinement of strengths associated with existing software engineering models. After the project attracts a development team the maintainer provides them with an initial release for testing and feature additions. build-and-fix. and encourages rapid and flexible response to change. This improved product is then resubmitted to the development team. a Unified Modelling Language (UML) tool concept is developed and registered with the Open Source Development Network Surge Force. First Assumption: Internal or External Drivers: The first unspoken assumption is that software problems are primarily driven by internal software factors.
backgrounds. the quality of the product is seen as emerging from the quality of the process. one is process centred and the other is architecture centred. and planning from business processes. 4. one should be able to attribute and trace it to an error that occurred somewhere during the application of the process by carefully examining each phase or step in the process. In process-centred software engineering. Fourth Assumption: Process Centred or Architecture Centred: There are currently two broad approaches in software engineering. people. data base design. . architecture. The viewpoint is that obtaining quality in a product requires adopting and implementing a correct problem-solving approach. 3. one would view a quality software product as the outcome of a development process that involved the use of good algo-rithms.of the business processes in organiza-tions. etc. If a product con-tains an error. for software as opposed to business processes. This separation not only isolated the software-related activities. This approach reflects the concerns and interests of industrial engineering. management. but also led to different goals. and code. one would view a successful software system as the result of effective software economics and software management. Third Assumption: Processes or Projects: A third unspoken assumption was that the software project was separate from the software process. This led most organizations and business firms to separate software development work. If one were a computer science specialist. and standardized or systematic quality assurance approaches such as the Capability Maturity Model and ISO. This assumption implied that it was possible to develop a successful software product independently of the business environment or the busi-ness goals of a firm. configurations. Thus. a software process was understood as reflecting an area of computer science concern. but a software project was understood as a business school interest. If one were an MIS specialist.