New User Special Price Expires in

Let's log you in.

Sign in with Facebook


Don't have a StudySoup account? Create one here!


Create a StudySoup account

Be part of our community, it's free to join!

Sign up with Facebook


Create your account
By creating an account you agree to StudySoup's terms and conditions and privacy policy

Already have a StudySoup account? Login here

Software Development Methods

by: Betty Kertzmann

Software Development Methods CS 314

Marketplace > Colorado State University > ComputerScienence > CS 314 > Software Development Methods
Betty Kertzmann
GPA 3.51

Robert France

Almost Ready


These notes were just uploaded, and will be ready to view shortly.

Purchase these notes here, or revisit this page.

Either way, we'll remind you when they're ready :)

Preview These Notes for FREE

Get a free preview of these Notes, just enter your email below.

Unlock Preview
Unlock Preview

Preview these materials now for free

Why put in your email? Get access to more of this material and other relevant free materials for your school

View Preview

About this Document

Robert France
Class Notes
25 ?




Popular in Course

Popular in ComputerScienence

This 10 page Class Notes was uploaded by Betty Kertzmann on Tuesday September 22, 2015. The Class Notes belongs to CS 314 at Colorado State University taught by Robert France in Fall. Since its upload, it has received 32 views. For similar materials see /class/210178/cs-314-colorado-state-university in ComputerScienence at Colorado State University.

Similar to CS 314 at CSU

Popular in ComputerScienence


Reviews for Software Development Methods


Report this Material


What is Karma?


Karma is the currency of StudySoup.

You can buy or earn more Karma at anytime and redeem it for class notes, study guides, flashcards, and more!

Date Created: 09/22/15
CS314 Final Study Guide Answers Intro to SE Week 1 Slides 1 Software Engineering The application of a systematic scientificallybased approach by which the capabilities of computers are made useful to humans via software 2 Programming in the Large Implementing a well thoughtout well understood large software system Team effort is required and models etc are used Modeling in the Small Concerned with how to describe small program designs Modeling in the Large Like programming in the large but also focuses on how modeling can uncover problems with the spec uses class model and activity diagrams problem space Requirements Modelingin 7 r 7 7 7 7 the39large solution space Architech Design Pro gramming any quot inthelarge DetailedMiodl e Design Modelingin ius m z a thesmall P r rogrammmg COdmg inthesmall 3 Factors behind software engineering Late 605 marked the emergence ofthe need for solutions to handle large complex software systems built by teams 4 Correctness Software behaves as stated in its requirements spec Has all specified properties Reliability Software produces the desired result consistently over a period of time Robustness Software behaves well in situations not covered in the spec Evolvability Software is easy to extend and adapt Testability Software is able to be tested in a systematic manor 5 The definition of quality may vary between developers and stakeholders Processes Week 1 Slides 1 Code amp Fix Process Model Hack 39til it works Only good for programming in the small under extreme time restraints Waterfall Process Model Conservative Design first code after IterativeZIncremental Process Model Radical aka agile processes Design a little code a little adjust Broken down into miniprojects Probably not the best model for programming modeling in the large 2 Radical models code amp fix interactiveincremental are used when quick results are needed and requirements are fuzzy or unstable Conservative models waterfall are used when consequences of errors are serious requirements are wellunderstood and stable and the program is more complex 3 Capability Maturity Model CMM Purpose Process improvement of a model Can be used to determine the effectiveness of current software processes and identify areas that can be improved 4 Unified Process Framework for implementing the complete software development lifecycle Iterative risk driven a Time Boxing Set goals for each iteration on a fixed duration schedule Forces prioritization allows software to be viewedexamined at multiple iterations b Phases Inception elaboration elaborating requirements construction iterative development and transition testing deployment c Workflows are distributed along phases and iterations Workflows Business modeling requirements design implementation testing deployment 00 Design Week 2 Slides 8 Ch 26 I quot PS 9 N 99 Abstract Data Type ADT A class in which all attributes are private Representation of values is hidden from users The implementation is abstracted Information Hiding Hiding implementation details from other classes ie private variables amp methods Encapsulation Locating info about a concept in one place class contains all related info Cohesion Task completion by itself or using other classes Cohesion Refers to the degree to which the elements of a module belong together Coupling Dependence on another class Exists in all true 00 programming Expert Pattern The object that contains the necessary data to perform a task should be the object that performs the task Creator Responsible for creating an object instance Class A creates the instances of class B that it needs Controller aka System Manager or Facade Delegates work to others Shouldn t really do work OK Polymorphism The ability to assume different forms Dynamic Binding The type of an object is determined dynamically at runtime Overloading Two methods in the same class have the same name but different parameter lists Overriding Two methods one in a subclass and one in a superclass have identical signatures name and parameter list Java only allows single inheritance Inheritance extends Interface implements Interface inheritance Requires classes that implement it to implement its methods Interfaces are used in quotCan Do Thisquot situations and abstract classes are used in quotIs A situations Liskov s Substitutability Principle LSP Whenever an instance of a class is expected one can always substitute an instance of any of its subclasses Class Invariant Property that holds for all instances of a class always no matter what other code does 13 Duh Contravariance A precondition may be weakened in a subclass Covariance A postcondition may be strengthened in a subclass The subclass cannot define effects that are not possible for the superclass method Refactoring Disciplined technique for restructuring an existing body of code altering its internal structure without changing its external behavior Should never break the code Class Design 8 Sequence Diagrams Week 34 1 NP V PPEquot 9 Design Class Diagram The whole or a part of the entire design class model Describes the structure and relationship of classes Responsibilities and relationships Association Class Represented with an object box connected to multiple others with association lines With object boxes and connecting lines to show relationships Arrow or not showing the relationship between two classes Knows about depends on etc It s relationship is unspecified With a closed arrow not filled Discriminant The name ofa generalization What is common between multiple classes ie an interface or parent class Multiple Inheritance When an object Can t do this in Java ie Student is Person and is Male u I IS an instance of multiple objects Has multiple parent classes Use association when a class object plays a role in another object s existence but it does not have an quotIs Aquot relationship Ob39ect Diagram Describes a configuration of objects instances of classes Specifies a set of system states modeled by object configurations Does not show inheritance relationships A state that satisfies the constraints expressed in a class model or class diagram is valid Object models only show the actual instantiated types no supers Seguence Diagrams Allow one to view only the objects involved in a accomplishing a piece of functionality in a program Shows interactions Message Represents a function call an action Synchronous messages wait for a reply before proceeding Asynchronousgt messages do not Lifeline Represents either roles or object instances that participate in the sequence being modeled a Execution is shown by messages gt or 9 and a return gt Alternative alt Choice of behaviors At most 1 will execute Optional guard else supported Option opt Special case of alternative Loop loop Optional guard ltmingt ltmaxgt ltBoolean Exprgt alt opt loop for all Xgt0 xgt0 else Reguirements Modeling Weeks 89 1 2 Problem A need for a software solution to perform a function a Reg Class Model describes problem concepts and their relationships b Use Cases describe the functionality of the system as it appears to outside users Involves actors and their inputs and the system s outputs Requirements Engineering Maior Activities 0 Gathering requirements from customers amp users S P Uquot 9 gt l l DUI Analyzing amp organizing requirements to gain deeper understanding Results in Use cases requirements class model 0 DocumentationSpecification of the requirements 0 Validation against customeruser needs Functional Requirement Describes Mthe system should do Non Functional Requirements Constraints that must be adhered to during development when how 3 Maior Types of Non Functional Requirements 0 Categories reflecting usability efficiency reliability maintainability amp reusability 0 Categories constraining the environment amp technology of the software platform tech used 0 Categories constraining the project plan amp development methods ie cost amp delivery date Requirements class models are concerned with the problem while design class diagrams are concerned with the solution Because assigning operations to classes is often a design decision Again this is a design decision not a requirement Because the idea of class models is to show relationships and using attributes makes these relationships much harder to see When this attribute is contained within this class concept Ok Actor Role played by an entity that interacts with the system ie human Depicted with stick figure It should describe the task from the initial interaction by the actor to the result that is produced leaving the system in a stable state Main Flow This is the inputsoutputs for a normal successful task Alternative Flows These are flows that happen when a normal requirement is not met for the task forcing the system to deal with it differently A use case describes a specific task in detail while a diagram describes the relationships between an actor and the services a system provides Don t include internal details interactions that are not direct between the user and software Use cases should only contain inputs and outputs from interactions between the system and a user Should not contain implementation details ie click this button drag this slider etc Design Patterns 1 2 Design Pattern Intended to capture the best development experiences in the form of problem solution pairs Generic description of problem factors that influence a good solution and a solution outline and a process for transforming problems to solutions Serves as a guideline to solving a problem Factory Method Problem Need to create an object that implements an interface Allows easy changes to other implementations by locating the specification in one location Creates single part Abstract Factory Enforces the creation of complex objects using only compatible components Creates entity with multiple parts Uses factory methods Singleton Hide constructor from clients not subclasses to ensure only one instance exists Adapte Converts a class interface into an interface that a client expectsneeds Fagad Provide unified interface to a set of interfaces in a subsystem ie SystemManager Iterator Provides uniform way to sequentially access elements of a collection regardless of the collection s structure Separate maintaining from iterating Observer A change in one class observable requires a change in another closely related class observer The observable should notify the observers Model View Controller Problem Create a UI that s resilient to change such as look amp feel changes in functionality etc Solution Split into model underlying function view output amp controller input Software Testing 1 5 quot 9 5 7 599 11 12 13 14 15 16 Quality Control Activities Validation amp Verification program testing software reviews inspections analysis amp design simulation Change Control software configuration management Problems High costs in support amp fixing problems failures loss of customers death explosions Validation Software satisfies specified amp unspecified stakeholder goals quotDid we build the right thingquot Person checks software behavior interpreting results based on the requirements Verification Software meets specified goals quotDid we build the thing right Output is checked against a written specification To Validate Testing code reviews To Verify Testing code reviews analysis amp simulation of design specs or models Limitations Can show presence of errors but never their absence Cannot usually be exhaustive RIP Not all tests that encounter a fault will lead to a failure Reachability Locations in the program that contain the fault must be reachable Infection The state of the program must be incorrect Propagation The infected state must cause some output or final state of the program to be incorrect DefectlFault Mistake in the code m Incorrect intermediate state Only occurs if a faultdefect exists in the program M Invalid behavior Produces incorrect output Only occurs if an error happens during execution Purpose of Debugging Uncover defects Test Case A set of values for the input variables ofa test program Test Set A finite set of test cases Test Criterion Attempts to group elements in D into subdomains D1 Dn such that the elements of a given subdomain are expected to behave in exactly the same manner Unit Testing Testing in the small Testing a procedure function or class Integration Testing Testing in the large Testing connections between units amp components System Testing Testing in the large Testing an entire system Alpha Testing System testing by a user group within the development organization Beta Testing System testing by select customers Regression Testing Retesting with the same tests after a software modification Test Oracle Determine whether a test completed with or without errors Manual or automatic Black Box Testing Use test cases generated without knowledge of the design amp implementation What it s supposed to do White Box Testing Use knowledge of the structure ofa program to produce test cases What it does Statement Coverage Criteria Each statement gets executed Edge Coverage Criteria Each edge path between statements gets traversed Condition Coverage Criteria Edge coverage a possible conditional values beingtested Path Coverage Criteria Exhaustive testing Ph uses Work ows Business Modeling Requiremenls Design Implementation Test Deployment Time gt Note The iterations are E1 E2 C1 C4 T1 T2 CS314 Final Exam Study Guide The nal exam will have the following parts Part 1 TrueFalse and Multiplechoice questions Part 2 Fill in the blanks statements Part 3 Modeling and Design Patterns exercises Study all the course slides used in this course With respect to the textbook it is very important that you study the following chapters 2 3 4 5 6 9 and 10 Note that the text book uses UML models that DO NOT all adhere to strictly to the UML standard e g use of lled in arrows instead of unfilled arrows for inheritance and not having multiplicities on each end of an association and not having names on associations the UML notation anal rules given in my course sliales overrule those in the text book eg all associations must have meaningful names anal must have multiplicities in your answers Students should be able to answer the following questions or have a good understanding of the following concepts before the date of the final exam Intro to SE read course slides in Week 1 1 What is software engineering 2 Understand the differences between programminginthelarge and programming inthesmall Understand the factors behind the emergence of software engineering Understand the software product qualities and their differences eg correctness vs reliability reliability vs robustness vs correctness evolvability testability Understand why the notion of software quality varies across stakeholders and application domains bu V39 Processes read course slides in Week 1 Understand the pros and cons of each of the following process models code and fix waterfall and iterativeincremental Under what circumstances is a conservative process model preferred over a radical process model and vice versa What is the purpose of the Capability Maturity Model CMM Understand the Unified Process a What is timeboxing and why is it important b What is the difference between a phase and an iteration in UP c What is the difference between a phase and a workflow in UP N As 00 Design read text book Chapters 2 to 6 and course slides in Weeks 2 3 1 What is an abstract data type How is a class related to an abstract data type 2 What is information hiding What is encapsulation Can you have a class that supports encapsulation but not information hiding Can you have a class that supports information hiding but not encapsulation How are these concepts related to the concept of an abstract data type What is a class responsibility and how is it discharged in an 00 program Understand the design principles that guide the assignment of responsibility to classes cohesion coupling expert creator and controller principles You should be able to identify a badna39139ve 00 design from a good 00 design What is polymorphism What is dynamic binding Understand the difference between overriding and overloading Know the difference between inheritance and implements relationships in Java Know the difference between implementation inheritance and interface inheritance Understand the situations in which an interface is preferred over an abstract class and vice versa Given an inheritance hierarchy you should be able to tell if it satisfies Liskov s Substitutability Principle LSP or not What is a class invariant What is a precondition What is a postcondition How are they checked in a program 14 What is refactoring Under what situations should code be refactored As l OOO10U1 l l i LAN Design Class amp Sequence Diagrams read course slides in Weeks 3 4 1 What is a design class diagram What aspect of a design does it describe 2 What is an association class and how is it represented in UML 3 How can a class diagram with association classes be converted to a class diagram with association classes 4 What is a navigability symbol 5 What does it mean when an association in a class diagram does not have a navigability symbol 6 How is inheritance represented in a design class diagram 7 What is a discriminant in a UML inheritance hierarchy 8 What is multiple inheritance 9 Understand when to use associations instead of inheritance 10 What is an object diagram 11 Understand how a class diagram can be used to determine of an object model is valid or not 12 Why is there no symbol for inheritance in an object model 13 What does a sequence diagram describe 14 What does a message in a sequence diagram represent 15 Distinguish between synchronous and asynchronous messages What is a return message 16 What is a lifeline How do you show method execution on a lifeline 17 How are loops and alternative structures shown in a sequence diagram Requirements Modeling read course slides in Weeks 8 9 1 What is a problem and how are the elements of a problem described during waaewaww software development a What aspects of a problem do requirements class models describe b What aspects do requirements use cases describe What are the major requirements engineering activities What is the difference between a functional and nonfunctional requirement What are the 3 main types of nonfunctional requirements How is a requirements class model different from a design class model Why are operations not shown in requirements class models Why is navigation not shown in requirements class models Why are references to other objects not shown as attributes in class models When do you model a concept as an attribute rather than as a class Given a Class Model you should be able to answer questions about the relationships that are described What is an actor How can it be depicted What is meant by the statement a use case must describe endtoend behavior What do the following use case terms mean and how are they related main ow alternative ow What is the difference between a use case diagram and a use case What types of steps should not be included in a use case Given a use case you should be able to evaluate it and determine if it is a good use case or not Design Patterns read course slides in Weeks 11 12 and chapters 9 10 1 LAN 4 What is a design pattern and what purpose does it serve Understand the problems targeted and the solution outlined by the following patterns the Factory Method Abstract Factory Singleton Adapter F acade Iterator and Observer Be able to draw a design model in which an instantiation of any of the above patterns is incorporated Software Testing read course slides in Weeks 5 7 1 wasaw aww 12 Give examples of quality control activities Describe problems that can occur if software quality is poor Distinguish validation from veri cation How can testing be used to validate software How can testing be used to verify software What are the limitations of testing What is the RIP principle Distinguish between failure defectfault and error What is the purpose of debugging What is a test case What is a test set What is a test criterion What purpose does it serve Give examples of test criteria Distinguish between unit integration and system testing Distinguish between alpha and beta testing 13 What is regression testing 14 What is a test oracle and how is it used in testing 15 What is the difference between blackbox and whitebox testing 16 Distinguish among the whitebox testing criteria


Buy Material

Are you sure you want to buy this material for

25 Karma

Buy Material

BOOM! Enjoy Your Free Notes!

We've added these Notes to your profile, click here to view them now.


You're already Subscribed!

Looks like you've already subscribed to StudySoup, you won't need to purchase another subscription to get this material. To access this material simply click 'View Full Document'

Why people love StudySoup

Steve Martinelli UC Los Angeles

"There's no way I would have passed my Organic Chemistry class this semester without the notes and study guides I got from StudySoup."

Allison Fischer University of Alabama

"I signed up to be an Elite Notetaker with 2 of my sorority sisters this semester. We just posted our notes weekly and were each making over $600 per month. I LOVE StudySoup!"

Jim McGreen Ohio University

"Knowing I can count on the Elite Notetaker in my class allows me to focus on what the professor is saying instead of just scribbling notes the whole time and falling behind."

Parker Thompson 500 Startups

"It's a great way for students to improve their educational experience and it seemed like a product that everybody wants, so all the people participating are winning."

Become an Elite Notetaker and start selling your notes online!

Refund Policy


All subscriptions to StudySoup are paid in full at the time of subscribing. To change your credit card information or to cancel your subscription, go to "Edit Settings". All credit card information will be available there. If you should decide to cancel your subscription, it will continue to be valid until the next payment period, as all payments for the current period were made in advance. For special circumstances, please email


StudySoup has more than 1 million course-specific study resources to help students study smarter. If you’re having trouble finding what you’re looking for, our customer support team can help you find what you need! Feel free to contact them here:

Recurring Subscriptions: If you have canceled your recurring subscription on the day of renewal and have not downloaded any documents, you may request a refund by submitting an email to

Satisfaction Guarantee: If you’re not satisfied with your subscription, you can contact us for further help. Contact must be made within 3 business days of your subscription purchase and your refund request will be subject for review.

Please Note: Refunds can never be provided more than 30 days after the initial purchase date regardless of your activity on the site.