











Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
What is software engineering? a discipline whose aim is the production of fault-free software, delivered on time and within budget, that satisfies the client's needs. The software must be easy to modify when the user's needs change What is classical software engineering life cycle model? 1. requirements 2. analysis/specification 3. design phase 4. implementation phase 5. post-delievery phase 6. retirement what is modern view of maintenance software undergoes modifications to code and associated documentation due to a problem or the need for improvement or adaption, irrespective of whether this takes place before or after installation of the product Why is there no planning phase, testing phase, and documentation phase during software development? t
Typology: Exams
1 / 19
This page cannot be seen from the preview
Don't miss anything!












What is software engineering? a discipline whose aim is the production of fault-free software, delivered on time and within budget, that satisfies the client's needs. The software must be easy to modify when the user's needs change What is classical software engineering life cycle model?
Objects can easily be reused in other programs, reducing time and cost of production and maintenance Once an Object is created, knowledge of its implementation is not necessary for its use Objects hide certain parts of themselves from programmers. This prevents programmers from tampering with values they shouldn't Development is made easier since objects in a product closely correspond to counterparts in the real world, leading to better quality software Separation of code makes maintenance quicker and easier, since only the code directly associated with the new feature is altered. This also reduces regression fault What are major differences between structured and object-oriented paradigm? The key difference between Structured Programming and OOP is that the focus of Structured Programming is to structure the program in to a hierarchy of subprograms while, the focus of OOP is to break down the programming task in to objects, which encapsulate data and methods.
In structured paradigm, there is a sharp transition between the analysis phase and the design phase (what the product is to do vs how to do it) In OOP, objects enter the life cycle from the very beginning. Thus, it is an integrated approach and the transition from workflow to workflow is smoother than with the classical paradigm, reducing the number of faults introduced during development. What is the requirements phase? concept is explored and refined, and the client's requirements are elicited What is analysis/specification phase? client's requirements are analyzed and presented in specification document software project management plan describes software development in full detail Design phase? Architectural design: product I broken down into modules Detailed design: each module is designed Implementation phase? Unit testing: components undergo coding and testing Integration: components of the product are combined and tested as a whole Acceptance testing: by client when developers are satisfied that the product functions correctly Product is then accepted by the client and installed on their computer Post delivery phase? Product is used to perform the tasks for which it was developed Four Types of Maintenance
Before commencing each phase, an attempt is made to mitigate (control) the risks. If it is impossible to mitigate all the significant risks at that stage, then the project is immediately terminated. What is the connection between Miller's Law and stepwise refinement? Because of Miller's Law, we cannot develop software product in a single step and thus, need to use stepwise refinement. Synchronize-and-stabilize Life-Cycle Model Requirements analysis phase is conducted by interviewing numerous potential clients For the package and extracting a list of features of highest priority to the clients First build consists of the most critical features, the second build consists of the next most critical features, and so on Each build is carried out by several small teams working in parallel At the end of each day, all the teams synchronize (put the partially completed components together and test and debug the resulting product) Stabilization is performed at the end of each of the builds. Any remaining faults that have been detected so far are fixed The build is frozen (no further changes will be made to the specifications) The principle of extreme programming is to minimize the number of features. Team determines the various features (stories) the client would like the product to support Team informs the client how long it will take to implement each feature Client selects the features to be included in each successive build using cost-benefit analysis Proposed build is broken down into smaller pieces (tasks) Programmer first draws up test cases for a task Two programmers alternate typing and checking the code being entered by his or her partner A common feature(s) of object-oriented life cycle models is/are: Common features of object-oriented life cycle models are: iteration, parallelism, and incremental development. Describe the five core workflows of the Unified Process.
. Explain the difference between a one-dimensional and a two dimensional life-cycle model. A traditional life-cycle is a one-dimensional model (single axis) - ex. Waterfall model The Unified Process is a two-dimensional model (two axes) - ex. Evolution Tree model Shows the workflows (technical contexts) and the phases (business contexts) Ideally, each workflow is completed before the next is started. However, some are too big and must be divided into increments. Within each increment, iteration is performed until the task is complete. Explain the capability maturity model (CMM). CMM: a related group of strategies for improving the software process, irrespective of the actual life- cycle model used what are the 5 maturity levels for software improvement
Specialization: each member carries out only those tasks for which he or she has been trained Hierarchy: chief directs actions of all other members and is responsible for every aspect Chief Programmer: both a manager and a skilled programmer who does architectural design and any critical or complex sections of the code, and later reviews the other members' work Backup Programmer: substitute for the chief programmer and does black-box test case planning Programming Secretary: maintains the project production library and documentation of the project (source code listings, JCL, and test data). Programmers hand their source code to the secretary, who
A tool that is able to detect a software fault as soon as it is keyed by the operator is a: a structure editor. A tool that automatically causes trace output to be produced is a: source level debugger Which tool checks for hard-to-detect faults caused by the calling of methods with the wrong number of arguments or with arguments of the wrong type? An on line interface checker An interactive source level debugger is invoked when a(n) _________ is reached. breakpoint A new version of a faulty module is a(n): A new version of a faulty module is a revision separation of concerns: breaking a software product into components that overlap as little as possible with regards to functionality Difference between validation and verification? Verification: the process of determining whether a workflow has been correctly carried out. Takes place at the end of each workflow (done by developers, objective process) Validation: intensive evaluation process before the product is delivered to the client. Purpose is to determine if the product as a whole satisfies the specifications (done by testers, subjective process) What is the role of a software quality assurance (SQA) group? Checking that the workflow has indeed been carried out by the developers once it is completed Check that the product as a whole is correct, once the development team is satisfied Develop the various standards to which the software must conform Establish the monitoring procedures for ensuring compliance with those standards What are walkthroughs? A two-step process: preparation followed by team analysis of the document Participant Driven - Participants present lists of unclear items and items they think are incorrect. The analysis team representative responds, clarifying what is unclear and either agreeing there is a fault or explaining why the reviewer is mistaken Document Driven - Participants are walked through document, with reviewers interrupting with
comments. This approach is more thorough and leads to a greater detection of faults through verbalization Inspections? A five-step process: overview, preparation, inspection, rework, and follow-up Metrics:
Inspection Rate - number of pages/code lines per hour is measured Fault Density - faults per page of faults per 1000 lines of code Fault Detection Rate - the number of major and minor faults detected per hou Fault Detection Efficiency - the number of major and minor faults detected per person-hour What is the difference between non-executive-based testing and executive based testing? Non-execution-based Testing: testing software without running test cases Execution-Based Testing: inferring certain behavioral properties of a product based, in part, on the results of executing the product in a known environment with selected inputs Robustness: the range of operating conditions, the possibility of unacceptable results with valid input, and the acceptability of effects when the product is given invalid input Utility is: the extent to which the user's needs are met when a correct product is used under conditions permitted by its specifications. Reliability is: a measure of the frequency and criticality of product failure. Robustness is: a function of the range of conditions under which it will operate An assertion is: An assertion is a claim that a certain mathematical property holds true at a given point. Schach An invariant is: An invariant is a mathematically expression that holds true under all conditions tested. What is module cohesion? What is module coupling? Cohesion: the degree of interaction within a module Coupling: the degree of interaction between two modules Coincidental Cohesion:
Library/Toolkit: a collection of related reusable programming routines
The designer is responsible for the control logic of the product as a whole The developer's code makes calls to the library code Promote code reuse rather than design reuse List the techniques for achieving portability.
Explain the model used to estimate the relative range of a cost estimate for each life-cycle phase. Cone of Uncertainty: describes the evolution of the amount of uncertainty during a project Uncertainty not only decreases over time passing, but it also diminishes its impact by risk management, specifically by decision-making internal vs external cost Internal cost - cost to the developers Salaries of development teams, managers, and support personnel The cost of hardware and software for developing the product Cost of overhead such as rent, utilities, and salaries of senior management External costs - price the client will pay FFP Metric Considers the three basic structural elements of data processing product and the efficiency of the software development process within that organization S=Fi+Fl+Pr (files, flows, processes) C=d × S Intermediate COCOMO Series of three models ranging from macro-estimation model (treats product as a whole) to a micro estimation model (treats product in detail) Define the three main components of a software project management Project Functions: work that continues throughout the project and does not relate to any specific workflow of software development Activity: a major unit of work that has precise beginning and ending dates, consumes resources, and results in work products Task: the smallest unit of work subject to management accountability functional vs non-functional requirement? Functional Requirement: specifies an action the target product must be able to perform Non-functional Requirement: specifies properties of the target product itself Finite State Machine: an abstract machine that can be in exactly one of a finite number of states at any given time and can transition from one state to another in response to some external inputs. A DataFlowDiagram is developed by
Statechart: an illustration of the states an object can attain as well as the transitions between those states in the Unified Modeling language (UML) In what situations are sequence diagrams superior to collaboration diagrams? In general, when is a collaboration diagram more useful than the equivalent sequence diagram? Sequence and collaboration diagrams both aim at describing the dynamic interactions between objects. The information you can describe are basically the same, but the two models have a different focus. Sequence diagrams show how objects communicate with each other in terms of a temporal sequence of messages. Collaboration diagrams show the interactions between objects or classes by defining messages that flow between each other. This describes at the same time some kind of static structure (links and nodes) and dynamic behavior (messages) of the system. The object-oriented approach considers the _____________. Structured systems tend to look either at actions (e.g. procedures and functions) or data only. In contrast Object-Oriented techniques consider both UML presents a: UML stands for Universal Modelling Language and as such merely acts as a notation for presenting an Object-Oriented software product Describe the three basic approaches to design:
The design phase consists of three activities: architectural design, detailed design and design testing. n Data Flow Analysis, the point of highest abstraction of input is the point at which the data: The point of highest abstraction of input is the point at which the data loses the quality of being input and simply becomes internal data. The underpining technique in Data Flow Analysis is: stepwise refinement, the foundation of so many other software engineering techniques, is the underpining technique in Data Flow Analysis. A transaction is a(n): A transaction is an operation from the viewpoint of the user of the product. Describe the approaches used when choosing a programming language. 1.Cost-benefit analysis
Corrective Maintenance: a fault (in analysis, design, coding, documentation, etc.) needs correcting Perfective Maintenance: change is made to the code to improve its effectiveness or maintainability Adaptive Maintenance: a change is made to the product to react to the change to the environment in which it operates (new hardware, OS, etc.) In theory, it is easy to maintain an object for two reasons: Conceptual independence means it is easy to determine which part of a product must be changed to achieve a specific maintenance goal Information hiding ensures that a change made to an object has no impact outside that object, hence reducing the number of regression faults In practice, there are three obstacles specific to maintenance of object-oriented software Maintenance programmer may have to study the inheritance hierarchy to understand a class. This worsens if the hierarchy is not in a linear fashion, but spread over the entire product A product implemented using an object-oriented language is less easy to solve as a consequence of polymorphism and dynamic binding. The maintenance programmer is forced to investigate a wide variety of possible bindings that might occur at run time and hence determine which of a number of different methods could be invoked at that point in the code The strength of inheritance is that new leaves can be added without altering any other classes in the tree. But if an interior node of the tree is changed in any way, then this change is propagated to all its descendants (fragile base class problem) Regression Testing: testing the changed product against previous test cases to ensure that it still works correctly If a maintenance programmer locates a fault and changes it, so introducing another fault in the product, then this is termed a __________ fault. Regression faults may be inadvertently introduced to a product when performing maintenance. The process of creating the design documents, then the code from specifications is known as: Forward engineering is the process of creating the design documents, then the code from specifications. Model-Driven Architecture: decouples product's functionality from its implementation, providing mechanism for portability Which feature of the waterfall software life-cycle model allows modifications to be made to the deliverables produced at an earlier stage? Feedback loops
A critical point of the waterfall software life-cycle model is that: no phase is complete until the documentation for that phase have been completed and the deliverables for that phase have been approved by the SQA group
. In one sense the Incremental model is a contradiction in terms. The developer must design the product as a whole but simultaneously view it as a sequence of builds. A disadvantage of the Incremental model is that: the model can easily degenerate into the 'build-and-fix' approach. The aim of the synchronisation stage of the synchronise-and-stabilise software life-cycle model is to: the partially completed components are put together and the resulting product is tested and debugged How is maintenance treated the spiral model of software development Maintenance is treated as a further iteration of the spiral model. Ranking of cohesion? best to worst -