Software Design and Architecture Study Guide
Software Design and Architecture Study Guide ITIS 3310
Popular in Software Arch and Design
verified elite notetaker
Popular in ComputerScienence
verified elite notetaker
This 7 page Study Guide was uploaded by Jakeya Flood on Sunday October 18, 2015. The Study Guide belongs to ITIS 3310 at University of North Carolina - Charlotte taught by Lance Peterman in Summer 2015. Since its upload, it has received 381 views. For similar materials see Software Arch and Design in ComputerScienence at University of North Carolina - Charlotte.
Reviews for Software Design and Architecture Study Guide
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: 10/18/15
Study Guide for ITIS 3310 Fall 2015 MidTerm How does software differ from the artifacts produced by other engineering disciplines Software is both a product and a vehicle for delivering a product As a product software is an information transformer As a vehicle for delivering a product software serves as a basis for computer control communication and creation of other programs How do software characteristics differ from hardware characteristics Software is developed not manufactured Software does not wear out but it can deteriorate when changes are made Most software is custom built not assembled out of components Explain what is wrong with the notion that computer software does not need to evolve over time Computer software must be revised as errors are discovered and corrected Software must be updated to accommodate changes in the computing environment Many times a customer will request changes to add new functions to an existing product or to accommodate changes in the business environment Sometimes an older system will need to be reengineered to provide benefits to the user in a modern context The bottom line is that software that does not evolve will eventually become unusable List three areas in which process models may differ from one another 1 Level of autonomy given to project team 2 Degree to which stakeholders are involved in the project 3 Degree to which work products are identified and required Describe how Polya s problem solving principles describe the essence of engineering practice Polya39s view is about engaging with real problems guessing discovering and making sense of mathematics 0 Seeking solutions not just memorizing procedures 0 Exploring patterns not just memorizing formulas 0 Formulating conjectures not just doing exercises 10 11 Describe the relationships among software engineering process methods and tools The software engineering processes are the foundation for the entire software project They establish the context in which the methods will be applied and how the work products are produced The methods provide the how to and the tools provide support for the process and methods How are tasks actions and activities related to software process models A process is a collection of activities actions and tasks that are performed when some work product is to be created An Activity strives to achieve to a broad objective An action encompasses a set of tasks that produces a major work product and a task focuses on small but welldefined objective How can process patterns assist a development team to build software products efficiently Process patterns can help development teams address problems in software processes and more quickly solve these problems by referring to previous software problems and the solutions to these problems Why it important for software processes to be agile It is important to be agile because the business environment that creates software is very fast paced and constantly changing An agile development team that can remain exible with changes can better avoid the cost of change Describe the phases of the prototyping model for software development Requirements are gathered by having the customer and developer meet and identify whatever objectives and requirements they can Quick design follows focusing on representation of the software that will be visible to the customer A prototype is constructed by the developer and evaluated by the customer and used to refine the requirements Iteration occurs and the prototype is tuned to satisfy the customer39s needs What are the primary advantages of the componentbased process model for software engineering 12 13 14 15 16 Componentbased process models promote software reuse and reusability and can result in 70 reduction in development cycle times 84 reduction in project costs and 70 increase in productivity Why has the Personal Software Process not been widely adopted by industry PSP is intellectually challenging and demands a level of commitment e g lengthy and costly training required that is not always possible to obtain In addition the required level of measurement is culturally hard for many software practitioners Why are evolutionary models considered by many to be the best approach to software development in a modern context The iterative nature of an evolutionary model enables developers to release more complete versions of software at the end of each cycle This allows them to stay competitive in the market by releasing software with limited capabilities and adding on features in cycles List the key issues stressed by an agile philosophy of software engineering Satisfy the Customer Welcome changing requirements Deliver working software frequently Business people and developers must work together daily Motivated individuals Facetoface conversations Working software is the primary measure of progress Sustainable environment Continuous attention to technical detail 10 Simplicity 11 Selforganizing teams 12 Team re ections at regular intervals What are the tradeoffs proposed by the Manifesto for Agile Software Development 0 Individuals and interactions valued over processes and tools owsowewwr 0 Working software valued over comprehensive documentation 0 Customer collaboration valued over contract negotiation 0 Responding to change valued over following a plan Describe the role of customers and endusers on an agile process team Customers and endusers participate as full collaborators on agile process teams They are the source of information used to create use cases and provided needed information on the business value of proposed software feature and functionality They also provide much needed feedback on operational prototypes during incremental delivery of software increments 17 List the 5 key attributes of an effective software teams 1 2 3 4 5 Sense of purpose Sense of involvement Sense of trust Sense of improvement Diversity in that a variety of skills are represented 18 Describe the five values held by XP teams 1 Effective Communication Close informal communication between stakeholders and developers Achieve Simplicity Design only for immediate needs Feedback derived from implemented software the customer and the other team members CourageDiscipline design for today recognizing that future requirements may change Respect respect for stakeholders and developers grows as the four above steps are followed 19 List environment characteristics that can be considered toxic to software teams 1 2 3 4 5 A frenzied work atmosphere High frustration that causes friction among team members A fragmented or poorly coordinated software process An unclear definition of roles on the software team Continuous and repeated exposure to failure 20 What are the six steps for requirements engineering 1 2 3 4 5 Inception Elicitation Elaboration Negotiation Specification 6 Validation 21 Describe the job of the requirements engineer with respect to stakeholder collaboration 22 What are the benefits of using analysis patterns during the analysis modeling process Using analysis patterns during the analysis modeling process can provide developers with a template with suggested solutions as well as advantages and disadvantages to recurring problems in software projects 23 What work products result from the requirements engineering process 24 A statement of need and feasibility A bounded statement of scope for the system or product A list of customers users and other stakeholders who participated in requirements elicitation A description of the system s technical environment A list of requirements preferably organized by function and the domain constraints that apply to each A set of usage scenarios that provide insight into the use of the system or product under different operating conditions Any prototypes developed to better define requirements Describe the purposes of domain analysis Domain analysis groups software that solves similar problems into a domain of common and variable parts This is typically done so that the software can be reused on multiple projects within that application domain 25 Which UML unified modeling language diagrams are useful in scenariobased modeling Use Case Diagram UML Activity Diagram and Swimlane Diagram 26 What questions should be asked to help refine a preliminary use case 1 2 3 4 What should we write about How much should we write about it How detailed should we make our description How should we organize the description 27 28 29 30 31 32 33 List the types of models that might be used in requirements modeling and explain the role of each type of model 0 Scenario based depict how the user interacts with the system and the specific sequence of activities that occur as the software is used 0 Class based models the objects that the system will manipulate the operations that will be applied to the objects to effect the manipulation Relationships between the objects and the collaborations that occur between the classes that are defined 0 Behavioral elements depict how external events change the state of the system or the classes that reside within it 0 Flow represent the system as information transform depicting how data objects are transformed as they ow through various system functions Know UML Activity Diagrams there will be 1 question From the articles either Are you an Architect or Agile Architecture What elements are involved in software architecture 1 Management of nonfunctional requirements 2 Architecture definition 3 Technology Selection 4 Architecture Evaluation 5 Architecture Collaboration Know the phases of software architecture The architecture is defined and when it is delivered What type of view would someone in the software architect role have Software architecture is all about having a holistic view and seeing the bigger picture to understand how the software system works as a whole Why do requirements drive architecture Requirements describe the problem and what the system must do while architecture describes the solution and how it will be organized to fulfill said requirements Think about examples of enterprise constraints The constraints of the enterprise serve to establish context product ownership for the independent agile teams 34 In an agile project who might have the responsibility for architecture Why The architect is responsible for defining and maintaining the structure of the solution and ensuring that it will meet the requirements An agile architect must also help the team to work together in an agile fashion to jointly own the solution and to interface well with other parts of the organization
Are you sure you want to buy this material for
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'