CS580 Midterm
Please compare the deliverables of construction phase and transition phase
(i). Construction Phase - In the construction phase, we perform the implementation of our software. In this phase, we minimize the risk and eliminate it. All the features and components are integrated into an application. In this phase, we perform strict testing and process optimization is done. We minimize the development cost and work to improve its efficiency.Construction phase mainly focuses on the implementation and testing of our software. (ii). Transition Phase - In the Transition phase, we perform strict testings mainly beta testing and deployment of software or project. After receiving the feedback from the user, we perform some changes in our software to make it more efficacious. In this phase, the developer works on a project with an user's view to make software more supportable and user friendly.
Please compare the deliverables of inception phase and elaboration phase
(i). Inception Phase - Inception Phase involves establishing goals and gathering the requirements needed for the software development. It involves the cost estimation and identifying the risk factors. In the inception phase, we mainly work on the scope of the project and architecture. Feasibility analysis is also an important part of the inception phase. (ii). Elaboration Phase - Elaboration phase involves in-depth evaluation and study as well as establishing the strong architecture and infrastructure. In the elaboration phase, we work on the efficiency of our architecture. In this phase, we also analyze use cases and other software diagrams. We reduce the risk to a certain extent and a preliminary user module is prepared in this phase.
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?
- First implement sound practice, manage decisions based on previous success, start tracking costs, schedules, and identifying problems. This could bring them up to level 2.
Correctness is the responsibility of the SQA group." Discuss this statement
1. It is the responsibility of the software developer to keep the quality of the software. 2. The developer should be responsible for their product and ensure they are correct. 3. SQA group cannot make corrections to the software, they can only test the product and tell the developer what needs to be fixed 4. SQA's responsibility is ensuring the product quality is kept high. 5. SQA present specific product standards and developers need to match those standards.
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?
62 KDSI a * (KDSI)^b since it is embedded b=1.20 a=2.8 2.8*(62)^1.20=396.30363
What is critical path? How to ensure that a project can be finished on time?
A critical path in project management is the longest sequence of activities that must be finished on time in order for the entire project to be complete. To ensure it's on time, get through all activities in critical path.
Now describe the type of situation where open-source software development is inappropriate
A smaller scale, in-company, team-oriented product.
Explain how the agile methods lead to the accelerated development and deployment of software
Agile methods develop the system in increments by using the incremental development processes. These methods made the change of the system in the small increments depending on the requirements of the customer. In this, the customers are included in the development process. The agile methods focus on the software of the system instead of designing and documentation. These methods allow the developers to delivery the software quickly to the customer.
When would you recommend against the use of an agile method for developing a software system?
Agile should not be used when the software is being developed by teams who are not co- located. If any of the individual teams use agile methods, it is very difficult to coordinate their work with other teams. - When the project is large scale then agile methodology is not very useful because, agile process is applicable for small and medium scale projects. - When the customer don't have enough time to involve in the project then we cannot use agile process. - When the client needs neet documentation of each developement cycle. - When the team is not self-organizing and lacks professional developers.
How are a workflow, an artifact, and a baseline related
Artifacts are only a piece of a project, while workflow creates and modifies those artifacts. A baseline is the collection of all the artifacts. Throughout the baseline the artifacts are tested.
Suppose you have to build a product to determine the cube root of 9384.2034 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. Quick, short, small project. One person job.
Please list the three components of software project management plan and three types of resources
Components: budget/cost, time/schedule, and scope Resources: work, materials and costs.
Please explain the five workflows
Requirements Workflow: -Aims to determine what the client needs, not what they want. -Draw a UML diagram to determine the client's business process and requirements. -Determine the client's constraints. Analysis Workflow: -Analyze and refine the requirements. -Make a specification document and Software Project Management Plan Design workflow: -Refine analysis workflow until material is in the form that can be implemented by programmers -Make a detailed class diagram and pseudocode Implementation workflow: -Implement the target software product in the implementation language -The software product is partitioned into subsystems which consists of code artifacts. Test workflow: -Test each individual workflow and their major outputs. -Test traceability between Analysis and Requirements workflows -Test traceability between Design and Implementation workflows. -Test implementation artifacts with unit testing, integration testing (and product/acceptance testing if applicable).
Agile Diagram + Explanation
See image
Code and Fix Diagram + Explanation
See image
Evolution-tree Diagram + Explanation
See image
II Model Diagram + Explanation
See image
Rapid Prototyping Diagram + Explanation
See image
Spiral Diagram + Explanation
See image
Sync and Stabilize Diagram + Explanation
See image
Waterfall Model Diagram + Explanation
See image
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 recently was completed at a cost of $135,200. What does this tell you about the productivity of your development team?
Size = 147 FFP = C * D = 1021 * 147 = 150,087 Productivity = (FFP - Cost)/FFP * 100 = (150,087 - 135,200)/150,087 * 100 = 9.92
What is the connection between the waterfall model and the iterative-and-incremental model
The iterative and incremental model consists of several waterfalls iterated consecutively.
Please explain the types of tasks and task relationships.
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. 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. 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. By default, each task in MSP is set to Fixed Units. If there is a change the Duration of the task, then MSP automatically recalculates the Work by using the scheduling formula.
Please describe the aim of each phase in the unified process
Inception Phase: Its aim is to determine if the software product is economically viable. Elaboration Phase: Its aim to is to refine the initial requirements: Refine the architectureMonitor the risks and refine their prioritiesRefine the business caseProduce the project management plan Construction Phase: The aim of the construction phase is to produce the first operational-quality version of the software product also known as beta. Transition Phase: The aim of the transition phase is to ensure that the client's requirements have indeed been met:Faults in the software product are correctedAll the manuals are completedAttempts are made to discover any previously unidentified risk
Please explain the strengths of the Iterate and Increment (II) model
It provides multiple opportunities to check for errors in codeThe various iterations help evaluate how robust the code is (how easy to add extension)Risks can be addressed early in development cycleThere is a working version of software when starting after each iterationIt is possible to deliver partially working versions to client to evaluate its effectiveness
Represent the Winburg mini case study of Sections 1.2 and 1.3 using the waterfall model. Is this more or less effective than the evolution-tree model? Explain your answer
Less effective, no clear order, more complex.
Please explain the maturity levels 1 to 5
Level 1 - initial: (most common) Ad hoc approach -No sound software engineering management practices -Most activities are responses to crises rather than preplanned tasks. (no plan, no measurements) -The entire process is unpredictable Level 2 - repeatable: Basic software management -Management decisions should be made on the basis of previous successful experience with similar products. -Measurements include meticulous tracking of costs and schedules. -Problems are identified, immediate corrective action is taken to prevent them from becoming crises. Level 3 - Defined: The software process is fully documented -Management and engineering activities are defined and documented. -Continual efforts are made to improve quality and productivity »Peer Reviews are performed to improve software quality CASE environments are applicable now (and not at levels 1 or 2 Level 4 - Managed: Quality and productivity are continually monitored and controlled -When there are unacceptable deviation from the goal, corrective action is taken. -Detailed measures of the software process and product quality are collected. Both the software process and products are quantitatively controlled. Statistical quality controls are in place todistinguish a random deviation from a meaningful violation ofquality or productivity standards Level 5 - OptimizingL Continuous process improvement -Statistical quality and process controls -Quantitative feedback from each project to the next, resulting a steady improvement in productivity and quality.
Please define the three life-cycle models: linear, waterfall and evolution-tree
Linear -> Requirements, Analysis, Design, Implement. Waterfall -> Same as linear but with feedback loops. More disciplined and document driven. Evolution-Tree -> Similar to waterfall but with episodes... easier to keep track of events.
Maintenance is the most important activity of software production and the most difficult to perform. Nevertheless, it is looked down on by many software professionals, and maintenance programmers often are paid less than developers. Do you think that this is reasonable? If not, how would you try to change it?
Maintenance is important, and maintenance programmers have to deal with janky software and patches and upkeep, not easy.
Please explain Miller's Law and stepwise refinement
Miller's law essentially means being able to work up to 7 different modules in the software at one time. Stepwise refinement is when you prioritize the modules to focus development on those that are most critical to the project. All modules will be dealt with eventually in order of priority.
What is moving target problem ? Please use the Teal Tractor case as an example to explain it
Moving Target = Changing Requirements. In the Teal Tractor case, one company absorbed another and thus their requirements increased.
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
No it does not make sense. The requirements workflow gathers the idea for what the software should do ultimately.
Describe the sort of product that would be an ideal application for open-source software development
One to be used by a very large user base, some of whom are willing to be core group and volunteer developers.
What are the major outputs of the five workflows
Requirement Workflow: Use case diagram is created Analysis WorkFlow: Spec doc is made and the Class diagram is started. Design Workflow: Completed class diagram Implementation Workflow: Code is written Test Workflow: The program is tested and we know if anything needs to be reworked.
Please explain following formula from MS Project. WORK = DURATION * UNITS
This is the formula for the number of person months / days / hours worth of work you will have. Given x duration and x units.
Please explain "traceability" for artifacts of software
When each item in the analysis artifacts corresponds to an item in the requirements artifacts and vice versa
Please explain the five workflows and their major outputs
https://www.informit.com/articles/article.aspx?p=24671&seqNum=8
1.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 ?
total of 18 person months split into 4 months. You'll need 18/4 = 4.5 engineers (one works half time).. or 5.