Intro To Software Engineering

¡Supera tus tareas y exámenes ahora con Quizwiz!

IMPORTANT You are a software manager in a company that develops critical control software for aircraft. Comment on the advantages and disadvantages of the following development strategies: c. Develop the system in Java using an agile approach with a user involved in the development team.

**Advantages:** Continuous user involvement ensures alignment with user needs. Flexibility to adapt to changing requirements. Delivers software quickly for early validation Reduce documents which saves time **Disadvantages:** Challenges if project is too large Requires a dedicated user representative and significant collaboration. Potential for scope creep if not well-managed.

IMPORTANT You are a software manager in a company that develops critical control software for aircraft. Comment on the advantages and disadvantages of the following development strategies: b. Develop a prototype using a scripting language, such as Ruby or Python, evaluate this prototype with software engineers and other stakeholders, then review the system requirements. Redevelop the final system using Java. (rapid prototype model)

**Advantages:** Early and frequent stakeholder involvement leads to a better understanding of system requirements. Allows for quick validation of critical features and concepts. Flexibility to adapt to evolving needs. **Disadvantages:** Prototype may not fully represent the complexity of a critical control system Potential for discrepancies between the prototype and the final system. Additional effort needed to transition from the prototype to a production-ready system.

Suppose you have to build a product to determine the cube root of 9384.2032 to four decimal places. Once the product has been implemented and tested, it will be thrown away. Which life-cycle model would you use? Give reasons for your answer

**Code and Fix** would be the right choice for this scenario. Here's why: Code and Fix allows for rapid development without the overhead of formal requirements, design, or documentation.

Please define the three life-cycle models: linear waterfall and evolution-tree

**Linear (Waterfall) Model:** A sequential project management approach where phases such as requirements, design, implementation, testing, deployment, and maintenance follow a linear progression, with each phase dependent on the completion of the previous one. **Waterfall Model:** A specific instance of the linear model, primarily used in software development, where phases are distinct and do not overlap, making it less adaptable to changes once a phase is completed. **Evolution-Tree Model:** A flexible project management approach that allows for iterative development, continuous client feedback, and the ability to adapt to changing requirements, resembling a tree structure with branches representing iterations and evolution.

IMPORTANT You are a software manager in a company that develops critical control software for aircraft. Comment on the advantages and disadvantages of the following development strategies: a. Collect the requirements for such a system from software engineers and external stakeholders (such as the regulatory certification authority) and develop the system using a plan-driven approach. (waterfall model)

**Plan-Driven Approach (Waterfall Model):** **Advantages:** Maintenance is easier Clear documentation and traceability for certification purposes. Comprehensive upfront planning can reduce risks. **Disadvantages:** Limited flexibility for accommodating changes during development. Late stakeholder feedback, potential for misunderstandings. Prone to schedule overruns if requirements change or are not well-defined initially. No actual product provided in early stages

IMPORTANT What are the major outputs of the five workflows?

**Requirements Workflow:** UML to describe the client's business processes **Analysis Workflow:** Class diagram **Design Workflow:** Design, documentations, detail of class and function **Implementation Workflow:** Code **Test Workflow:** Test result

Please explain the five workflows

**Requirements Workflow:** to determine the client needs, not want gain understanding of the application domain build a business model **Analysis Workflow:** analyze and refine the requirements (activities, people needed and software/hardware) It involves breaking down high-level requirements into more detailed specifications. project plan **Design Workflow:** The Design Workflow translates the analyzed requirements into a detailed blueprint for the product or system. refine the analysis workflow until the material is in a form that can be implemented **Implementation Workflow:** The Implementation Workflow is where the actual coding and development take place It involves writing code, building software components, and integrating them into a working system. Key activities include programming, debugging, and version control. **Test Workflow:** The Test Workflow focuses on verifying and validating the product or system to ensure it meets the specified requirements. It includes various testing types like unit testing, integration testing, and user acceptance testing. Key activities involve test planning: unit testing, integration testing, product testing and acceptance testing

Please explain "traceability" for artifacts of software.

**Traceability** in software development refers to the ability to track and document the relationships and dependencies between various artifacts, such as requirements, design documents, test cases, and code. It ensures that each component or aspect of the software is linked to the source or requirement that necessitated it.

Artifact

- Output or result of a task within a workflow. - Constituent components

IMPORTANT Waterfall Model

- Sequential phases: Requirements, Design, Implementation, Testing, Deployment, Maintenance. - Linear progression, with each phase building upon the previous one. - The waterfall model cannot show the order of events

Stepwise Refinement

- Software development technique of breaking down complex problems into smaller steps (group a max of 7 chucks together = modules). - Then we apply incremental process, where we prioritize the most important modules and work down to least importance

Represent the Winburg mini case study using the waterfall model. Is this more or less effective than the evolution-tree model? Explain your answer.

- Waterfall Model is generally less effective than the Evolution-Tree Model - Evolution Tree offers greater flexibility, adaptability to changing requirements, and ongoing client involvement, making it more suitable for complex or evolving projects. - Waterfall does not show order or events, while Evolution Tree shows explicit order

Evolution-Tree Model

-Allows for multiple branches (iterations) of development, each refining the product. -The explicit order of events is shown -At the end of each episode, we have a baseline, a complete set of artifacts (constituent components)

Agile Model

A development model that emphasizes continuous feedback and cross-functional teamwork. Prioritizes flexibility, adaptability, and continuous improvement. Uses short development cycles (sprints) and emphasizes customer feedback.

Describe the sort of product that would be an ideal application for an agile process

Agile processes appear to be a useful approach to building small-scale software products when the client's requirements are vague

Please compare the deliverables of construction phase

All the artifacts (beta release versions) The completed architecture The initial user manual and other manuals, as appropriate The updated risk list The project management plan (for the remainder of the project) If necessary, the updated business case

Please compare the deliverables of the transition phase.

All the artifacts (final versions) The completed manuals

IMPORTANT Spiral Model

An abstract description of the systems life cycle where there are four defined quadrants - planning, risk analysis, use of design methods, client and management evaluation. Once one stage of development has gone full circle, the next please takes place, and so on until completion.

How are a workflow, an artifact and a base lined related

At the end of each stage of a workflow, there is a baseline, which is a complete set of artifacts

Miller's Law

Average person can hold about 7 chunks of information in working memory.

What is the critical path? How to ensure that a project can be finished on time?

CP is the flow of tasks, of which, a delay in any one of these tasks will cause a delay to the whole project. It is the longest path through the project network diagram and the shortest possible time to complete the project.

Three components of the software project management plan

Components include work to be done, resources, and budget.

IMPORTANT Baseline

Configuration of all artifacts in the product after testing.

IMPORTANT Baselining

Creating a complete set of artifacts at the end of each stage of a workflow.

IMPORTANT Iterative and Incremental Model

Development approach with cycles of iterations and continuous improvement. We can consider the project as a whole as a set of mini projects (increments) Each iteration can be viewed as a small but complete waterfall life-cycle model

To develop a new software for a hotel, it needs 2 person-months for requirements workflow, 4 person-months for analysis and design, and 12 person-months for coding and testing. The client requires to use the software within 4 months. How many engineers should be assigned to the development group ?

Duration = 2 + 4 + 12 = 18 Unit = 4 W = D / U W = 18/4 = 4.5

IMPORTANT Please explain following formula from MS Project. WORK = DURATION * UNITS

Duration refers to the length of working time. In MSP, a Day is considered eight hours of working time and a Week is considered 5 working days. Work refers to the amount of labor units required to complete a task. It is usually represented in Person Hours, Person Days, or Person Weeks. Units refers to the Resource Units (number of resources) available to complete a task. Resources could be people, equipment, facility, or materials required to complete a task.

IMPORTANT Rapid Prototyping Model

Focuses on quickly creating a prototype to visualize and validate requirements. Prototypes serve as a basis for final development. Enhances client communication and understanding of the product.

IMPORTANT Synchronize and Stabilize Model

Focuses on synchronizing and stabilizing features before release. Suitable for large-scale software projects with multiple teams.

IMPORTANT Open Source Model

Ideal for infrastructure projects and not suited for projects involving sensitive information. no specifications and no design Collaborative development by a community of contributors. Code is open and transparent, encouraging peer review and improvement. Risk of security vulnerabilities if not properly managed.

Consider the requirements workflow and analysis workflow. Would it make more sense to combine the two activities into one workflow than to treat them separately?

In many cases, it's beneficial to keep these workflows separate, especially in larger projects where a structured approach can help manage complexity and ensure a thorough understanding of requirements before moving into analysis and design.

Task types - Fixed Duration

Is the duration of a task that's deemed to be constant (fixed). Any changes to the assigned units or work does not affect the duration of the task.

Describe the sort of product that would be an ideal application for open source software development

It can be extremely successful for infrastructure projects

Please describe the aim of each phase in the unified process.

It follows an iterative, incremental, architecture-centric, and use-case driven approach. **Inception Phase:** focus on requirements and objective of the project ( business case, determine risk, is economically viable **Elaboration Phase:** Plan project (refine and elaboration of previous phase) How to implement software (draw class diagram) **Construction Phase:** implementation, write code testing (unit testing, integration testing, product testing) deliver all beta version of artifacts, completed architecture **Transition Phase:** Test verify if software meets clients requirement the final versions of all the artifacts and completed manuals

Risk in Open Source Model

Lack of accountability and potential security vulnerabilities.

Risk in Code and Fix Model

Lack of structured planning, design, and documentation. Unmaintainable code

Risk in Waterfall Model

Late-stage discovery of issues or changes in requirements. Delivered product may not meet client's needs

Activity

Major unit of work with precise dates, consumes resources, and results in work products.

You are in charge of developing a 62-KDSI embedded product that is nominal except that the database size is rated very high and the use of software tools is low. Using intermediate COCOMO, what is the estimated effort in person-months?

Nominal effort = a * (KDSI)^b Nominal effort for embedded product = 2.8 (62)^1.20 = 396.3 person-months Multiply nominal effort by multipliers 396.3 * (database size,very high: 1.16) * (use of software tools, low: 1.10) = 505.68

IMPORTANT You are in charge of developing two 31-KDSI organic-mode products. Both are nominal in every respect except that product P1 has extra-high complexity and product P2 has extra-low complexity. To develop the product, you have two teams at your disposal. Team A has very high analyst capability, applications experience, and programmer capability. Team A also has high virtual machine experience and programming language experience. Team B is rated very low on all five attributes. (i) What is the total effort (in person-months) if team A develops product P1 and team B develops product P2? (ii) What is the total effort (in person-months) if team B develops product P1 and team A develops product P2? (iii) Which of the two preceding staffing assignments makes more sense? Is your intuition backed by the predictions of intermediate COCOMO?

Nominal effort = a * (KDSI)b For organic a = 3.2 and b = 1.05 (tables will be given to us) P1 3.2*(31)^1.05 = 117.78 (extra high complexity: 1.65) = 194.34 P2 3.2*(31)^1.05 = 117.78 (extra low complexity: 0.70) = 82.448 Team A Very high analyst (0.71) Very high application experience (0.82) Very high programmer capability (0.70) High virtual machine (0.9) High programming language(0.95) = 0.3484 Team B Very low in all = 3.689 (i) What is the total effort (in person-months) if team A develops product P1 and team B develops product P2? Team A(P1) = 0.3484 * 194.34 = 67.7 person-months Team B(P2) = 3.689 * 82.448 = 304.16 person-months (ii) What is the total effort (in person-months) if team B develops product P1 and team A develops product P2? Team A(P2) = 0.3484 * 82.448 = 28.7 person-months Team B(P1) = 3.689 * 194.34 = 716.9 person-months (iii) Which of the two preceding staffing assignments makes more sense? Situation 1 = 67.7 + 304.16 = 371.86 Situation 2 = 28.7 + 716.9 = 745.6 Thus Situation 1 is the best staffing assignment

Test-First Development

One of the XP testing features **Writing a Test:** Create a test case that defines the expected behavior. **Writing the Code:** Implement the code to make the test pass. **Running the Test:** Execute the test to verify that the code meets the requirements.

Task relationship - Overlap

Overlapping tasks occur when two or more tasks have some concurrent work. This may not represent a strict dependency but can be used to optimize project timelines.

Bhutan Airline Sales system is to be built in PHP. Estimate the efforts using application composition model given the following requirements: - 3 screens and 2 reports - Reuse 16% of components -Developer's experience is very low

PM = ( NAP * (1 - %reuse ) ) / PROD NAP is the number of application points PM = [5 * (1 - 16%)] / 4 = 1.05

Resources needed for software development:

People, hardware, and support software needed for software development.

IMPORTANT Please explain the maturity levels 1 to 5 for SW-CMM model

Progression from chaotic to optimized processes in software development. 1 - Initial: no management, crisis, chaos, adhoc 2 - Repeatable: repeat previous successful experiences 3 - Defined: define everything in documents 4 - Managed: continuously monitor and control quality and productivity of the software process 5 - Optimizing: optimize software process across different projects.

Code and Fix Model

Rapid development without formal requirements, design, or documentation. The easiest way to develop software The most expensive way Minimal upfront planning or design. Prone to chaos, poor maintainability, and scalability issues.

Task relationship - Lag

Represents a delay or waiting period between two tasks in a dependency relationship. It's used to introduce a time gap between tasks when necessary.

Type of situation where an agile process is inappropriate

Requirements are highly stable and well-defined. Large Projects There's a lack of active involvement or commitment from stakeholders.

Workflow

Sequence of tasks or steps to accomplish a goal or process.

Type of situation where the spiral life-cycle model is inappropriate

Small scale software The organization lacks the expertise or resources to effectively implement the model's risk management and iterative processes.

Task

Smallest unit of work subject to management accountability within an activity.

IMPORTANT Explain how the agile methods lead to the accelerated development and deployment of software.

Specification, design, implementation and testing are inter-leaved and the outputs from the development process are decided through a process of negotiation. The aim of agile methods is to reduce overheads in the software process (e.g. by limiting documentation) and to be able to respond quickly to changing requirements. Focus on the code rather than the design Are intended to deliver working software quickly and evolve this quickly to meet changing requirements.

Describe the sort of product that would be an ideal application for the spiral life-cycle model

Suitable for high-risk, complex, and large-scale software projects.

Task relationship - Start to Start

Task B can start when Task A starts. Both tasks may have overlapping durations. This type of relationship is often used when two tasks need to commence simultaneously or have some degree of overlap

Task relationship - Finish to Finish

Task B cannot be completed until Task A is completed. This relationship is useful when two tasks must end simultaneously or have a degree of dependency on each other's completion.

Task relationship - Start to Finish

Task B cannot finish until Task A starts. This type of relationship is relatively rare and is used when the completion of one task depends on the commencement of another.

Task relationships - Finish to Start

Task B cannot start until Task A is completed. This is the most common and intuitive type of relationship, where one task serves as a predecessor to another.

What is the connection between the waterfall model and the iterative and incremental model

The Waterfall Model is a sequential, non-iterative approach where each phase is completed before moving to the next. In contrast, the Iterative and Incremental Model involves cycles of development, where the project evolves through iterations, with each iteration potentially revisiting and improving earlier phases. - Each iteration can be viewed as a small but complete waterfall life-cycle model

IMPORTANT Please compare the deliverables of the elaboration phase.

The completed domain model The completed business model The completed requirements artifacts The completed analysis artifacts An updated version of the architecture An updated list of risks The project management plan (for the rest of the project) The completed business case

You have just purchased Antedeluvian Software Developers, an organization on the verge of bankruptcy because the company is at maturity level 1. What is the first step you will take to restore the organization to profitability?

The first step to restore Antedeluvian Software Developers to profitability is to assess the current state of the organization and identify the root causes of its financial troubles.

IMPORTANT Please compare the deliverables of the inception phase

The initial version of the domain model The initial version of the business model The initial version of the requirements artifacts A preliminary version of the analysis artifacts A preliminary version of the architecture The initial list of risks The initial ordering of the use cases The plan for the elaboration phase The initial version of the business case

IMPORTANT What is the moving target problem? Please use the Teal Tractor case as an example to explain it.

The moving target problem refers to the challenge of continuously changing project requirements or goals during the course of a project. In the Teal Tractor case, it is easier to start from scratch - It must be modified to handle additional sales regions. - It must be extended to handle those aspects of the business that are handled differently in Canada, such as taxes. - It must be extended to handle two different currencies, U.S. dollars and Canadian dollars.

IMPORTANT Configuration

The specific version of each artifact from which a given version of a product is built

XP Approach

Type of Agile Approach XP promotes a flexible and customer-focused approach to software development, aiming for high-quality, adaptable, and user-centric solutions. XP testing features: Test-first development. User involvement: in test development and validation. Automated test: harnesses are used to run all component tests each time that a new release is built.

Phases of Scrum Approach

Type of Agile Approach emphasizing on managing iterative development. It comprises three phases: initial phase to set project objectives and architecture sprint cycles to develop system increments project closure to wrap up, document, and learn from the project.

IMPORTANT A target product has 8 simple inputs, 3 average inputs, and 11 complex inputs. There are 57 average outputs, 9 simple inquiries, 13 average master files, and 18 complex interfaces. Determine the unadjusted function points ( UFP ). If the total degree of influence is 47, determine the number of function points.

UFP = (Sum of (Count of each function type * Complexity weight for that type)) UFP = (8 * 3) + (3 * 4) + (11 * 6) + (57 * 5) + (9 * 3) + (13 * 10) + (18 * 10) = 724 UFP DI was given: 47 The technical complexity factor (TCF) TCF = 0.65 + 0.01 x DI = 0.65 + 0.01 * 47 = 1.12 Now, calculate FP: FP = UFP x TCP FP = 724 x 1.12 = 810.88 Rounding to the nearest whole number: Number of Function Points (FP) = 811 FP

Pair Programming

Used in XP **Pair Programming** is a software development practice where two developers work collaboratively at the same computer. Supports collective ownership and refactoring Acts as an informal review process

IMPORTANT You are a software engineer at Pretoriuskop Software Developers. A year ago, your manager announced that your next product would comprise 8 files, 48 flows, and 91 processes. (i) Using the FFP metric, determine its size. (ii) For Pretoriuskop Software Developers, the constant b in equation (4.2) has been determined to be $1021. What cost estimate did the FFP metric predict? (iii) The product was recently completed at a cost of $135,200. What does this tell you about the productivity of your development team?

Using the FFP metric, determine its size. Given the number of files (Fi), flows (Fl), and processes (Pr) The size (S), cost (C) are given by S = Fi + Fl + Pr C = b x S S = 8 + 48 + 91 = 147 The constant b (efficiency or productivity) varies from organization to organization C = b x S = $1021 x 147 = $150,087 That the development team was more productive and efficient than estimated

IMPORTANT Revision

Version to fix a fault in an artifact. We cannot throw away an incorrect version

Project Function

Work carried out throughout the project, such as project management and quality control.

IMPORTANT Variation

is a version for a different operating system-hardware Variations are designed to coexist in parallel

Task types - Fixed Work

is the amount of work of a task that's deemed to be constant (fixed). Any changes to the assigned units or duration does not affect the work of the task.

Task types - Fixed Units

is the number of assigned units of a task that's deemed to be constant (fixed). Any changes to the duration or work does not affect the assigned units of the task.

Now describe the type of situation where open source software development is inappropriate

it's not practical if only one organization benefits. Open source relies on a broad user base to contribute and improve the software. If only a few people find it useful, open source may not be the best fit. Open source development involves sharing code with the public, so it's not a good fit for projects that require keeping information confidential.

Strengths of iterative and incremental model

multiple opportunities for checking that the software product is correct The robustness of the architecture can be determined early in the life cycle mitigate (resolve) risks early have a working version of the software product from the start Deliver partial versions to smooth the introduction of the new product in the client organization


Conjuntos de estudio relacionados

Lower extremities Knee pathologies chapter 10

View Set

Chapter 16: Health Promotion of the Adolescent and Family

View Set

Access Chapters 1,2, and Concepts Chapter 11 Test

View Set

Prin of Business: The Big Squeeze

View Set

Pathogens and the Evolution of Disease

View Set

Ch 2 Quiz The Middle American Realm

View Set

Child and Adolescent Psych Exam #3

View Set

Module 11 Psychological Disorders

View Set