Define Software Engineering
Click the card to flip 👆
1 / 33
Terms in this set (33)
How are COTS (Commercial Off The Shelf) and open-source projects different from internal and contract projects?Open source and off the shelf products are usually release first and then fix based upon user testing, whereas internal and contract projects focus more on designing and testing before release.Code Complete ch 1 - 4: a. What is the most challenging part of programming, according to McConnell? b. Explain which of the software construction metaphors given you believe is best, and explain why. c. Cite some numerical statistics given by McConnell demonstrating the relative cost of errors, depending on where they are made and where they are discovered in the software development life cycle. d. According to McConnell, what percentage of code is often needed just for exception handling? e. According to McConnell, what percentage of change in the requirements is to be expected during the development process?a. Conceptualizing the problem b. Oyster farming bc it's a good way to visualize incremental development(accretion). Oysters make pearls by gradually adding small amounts of calcium carbonate which is what happens with programming. c. 1. requirement errors caught during system testing cost 10x more 2. requirement errors caught during architecture cost 3x more 3. construction errors caught during system testing cost 10x more d. 90% e. 25%Define time boxing and feature creep.Timeboxing - allocating a set amount of time to complete certain features. If the deadline is met, great, if not, the feature is either dropped or left as-is. Feature creep - when a feature is added in here and there and eventually it leads to a never ending cycle of new features being added and the project is never finished.Who is Jacobsen? What is Rational Software? What do these have to do with Software Engineering?Ivar Jacobsen started Objective Systems, which later became Objectory AB, and then became Rational Software. At Rational Software, Jacobsen, Grady, and Booch developed the Unified Modeling Language and his Rational Process became the Rational Unified Process.Where did the Rational Unified Process get its name?Rational came from Rational Software, where it was developed. Unified came from the unification of many different modeling techniques.Explain "the Unified Process is use-case driven".The Unified Process often refers to the product's "use-cases" to make architectural design decisions. The way the software is designed is dependent upon how it is going to be interacted with, or "used".How to JB&R define the difference between iteration and incrementation?Iteration - implement then refine Incrementation - design and then implementDiagrams: -Know Waterfall model from page 48 OOSE book -Know Iterative model from page 41See diagramsWhat activities take place during the requirements workflow? Analysis? Design? Implementation?Requirements - the client's requirements for the software are elicited through interviewing, emailing, etc. Analysis - the specifications are written up and refined Design - the architecture is designed and modules are designed Implementation - the coding and testing beginsWhat are the CMM and ISO 9000 standards and what are they trying to address?Both are standards for software development proficiency. They are trying to address the high rate of software project failures and over budget projects.List three barriers or challenges to requirements elicitation, as discussed in class.Location, Language, and CooperationList 5 standard ways of eliciting requirements.Interview, Phone calls, Emails, Cameras, Employee ObservationList and briefly describe 5 non-functional system requirements, and whether or not they are more important to the client or developer.Speed - how quickly the program operates - Client Reliability - how often the program functions - Client Extensibility - how easily functionality is added to software - Developer Maintainability - how easily the software is maintained - Developer Documentation - how well documented a piece of software is to help new developers work on it - DevelopersWhat would be metrics for measuring the quality of the requirements workflow?5 important things to remember when interviewing a client?Your own biases Start with context free questions Follow up with solution-context questions Restate a summary of needs to interviewee to ensure understanding Combine needs from multiple interviewsImportant things to keep in mind when brainstorming?Everyone participates Piggyback ideas Group ideas Rank ideasWhat is the purpose of storyboarding? 3 ways to do it?Storyboarding is intended to elicit yes-but reactions early. Pencil & paper, flipcharts, power point.Explain Brook's Law.Adding manpower to a late project makes it laterDifference between a program and a programming systems product, according to Brooks.A program is a single piece of software to be run on a single computer and a programming systems product is to be run on many different machines.Pluses and minuses of programming as an activity, according to Brooks.Pluses - Creating something, effective medium, always mentally stimulating Minuses - Often times you don't get to decide what you make, debugging and errors, deadlinesExplain why Brooks says to "plan to throw one away".When you build a software product the first time around, it is a learning process. However, that often means a flawed architecture. If you throw away the first one, you are then able to build it again with the foreknowledge of potential issues, and are able to design the product accordingly.According to Leffingwell and Widrig, what are the main 3 causes of project failure? Main cause according to Brooks?L/W: Lack of user input, incomplete requirements and specifications, and changing requirements and specifications Brooks: Adding excessive manpower to a late projectUndiscovered ruins syndrome? User and developer syndrome?Undiscovered ruins syndrome - The more requirements that are found, the more you know remains. This essentially means that the search for requirements never ends and the product is never able to be completed. User and Developer syndrome - The communication gap between users and developers. The different skill sets and backgrounds between the users and developers can create language and understanding barriers between them.