CS 386 Midterm Review

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

36) When is it better to model something as an inheritance instead of an associated class?

An associated class is used when you want to give the user the control to add options or change certain things. Inheritance is useful when everything that you want is pre-defined, and the developer simply decides where to place a category in the inheritance tree.

26) What is ISO 25010: 2011 for? Cite some 4 characteristics defined by the standard.

The ISO 25010: 2011 have defined a set of non-functional requirements that most software works to achieve. Focusing on anyone of the requirements will result in some kind of trade-off with another one of the requirements (ie focusing on security will result in a lose of usability) Performance Functional Stubility Security Usability

34) What are the problems of hard-coded values?

- Less flexible - the user cannot create new categories - Susceptible to programmer typos if the value appears in several places. ::Really should only be used if the value will never change

33) What are the problems of modeling a concept as a free-text attribute?

- Susceptible to typos and inconsistencies -Harms data aggregation

38) A model has a class Account associated to a class AccountType, which has 3 subclasses (Checking, Savings, and Investment), each one implementing specific complex methods for calculating the monthly interest, defined respectively by the federal laws A, B, C. Your client now wants to allow the financial director to create new account types (10 new account types is foreseen). When an account type is created, the director chooses which federal law applies for that account type. How would change the model to accommodate this change, maintaining the good principles of OOP?

??

30) What is a Kanban and how it is used? (THINK TRELLO!)

A Kanban is a board for user stories that will easily allow for developers to update the stories as they move through the development process. These boards usually consist of backlog, todo, doing, done, and accepted. Where each story will move through the board until it is either discarded or completed. While they were originally made of whiteboards and post it notes, we now have modern Kanban like Trello, and Waffle.

16) What is a value proposition? Give examples.

A value proposition should illustrate the features that your product is providing that make it standout compared to other products on the market. A value proposition should focus on what customer problems you are solving, what customer needs you are satisfying, and why they will repeatedly pay for your solution. Apple iPhone 5c (different colors) Snowy Owl (Super warm, inner zipper maintains seal if outer breaks) GoPro (Very good for a niche market, ie sports fanatics)

32) What is the relation of abstraction and analysis.

Abstraction takes a more complex concept and breaks it down into smaller pieces. (i.e. you take a "red black tree" and shrink it down into nodes, and methods) This allows the developer to break the system apart into more manageable chunks. Analysis - "A detailed examination of anything complex in order to understand its nature or to determine its essential features" Analysis uses abstraction. You use Analysis to create a model. The model is a simplified and Abstract representation of a concrete situation. Abstraction is separating elements from a complex thing. ** I know this is half right, but it's his definitions that are wrong so for this test it is right **

10) Explain why people use the expression "There is no silver bullet"for software engineering.

Because there is not "one" software that solves all of the problems. (i.e. It may be good at storing arrays and adding to the data, but could be slow at accessing the data) (unchecked)

4) What is the difference of focus of Computer Engineering, Computer Science, Information Systems, and Software Engineering?

Computer Engineering: This combines the fields of electrical engineering and computer science to develop software and hardware. Computer Science: It' theory driven. Information Systems: It's any organized system for the collection, organization, storage and communication of information Software Engineering: It's focused on creating well-rounded software using techniques of the engineering discipline.

27) Give the most important non-functional requirement for the following type of systems: critical systems, real-time systems, and embedded systems.

Critical Systems - Reliability Real-time systems - performance Embedded systems - Functional suitability

39) Explain why an analyst can represent concepts either as data or source code elements. Give an example.

Data: Can be changed by the user, meaning it has more flexibility and ability to add new elements. It is more susceptible to error through user mistakes. Source Code: Cannot be changed by the user, requiring another compilation for any serious changes or new elements. Only susceptible to errors made by the developer. This approach allows specific behavior to be modeled using specific classes. Say a system has different types of accounts. Making the account type an attribute of the account is a data representation as the type can easily changed by a simple setter method. Creating a new account type is just as easy. If the account types are represented as their own sub classes of a general Account class, this is a source code element representation. In order to add a new account type, a new subclass needs to be created. This requires the system to be recompiled with this new class now included. In order to change the account type in this representation, the account must be recreated, transferring the attributes of the old class to the new one.

24) What is traceability and why it is important for software engineering?

Each future piece of the development puzzle is motivated by a requirement ▫ Requirements drive design elements ▫ Those design elements drive source code ▫ Source code drives testing • So, it's important to look at questions like: ▫ What requirements does this component serve? ▫ Which requirements do these source code files satisfy? ▫ Which parts of the requirements specification do these test cases examine?

19) Give 5 good practices for conducting interviews.

From slides (ie there are tons more!) GTFO of your comfort zone ← NICE! Research who you are interviewing Focus on listening, and learning Ask open ended questions Get into specific details about things that come up in the interview

20) What are functional and non-functional requirements? Give examples.

Functional The core of the requirements specification activity (main things that system actually does) What does the system do, what does it look like, what are the inputs, and how should the system respond to errors Non-functional Criteria that is used to judge the operation of the system rather than specific behaviors Trade-offs between requirements (8 attributes of product quality)

6) Give 5 characteristics of a project that requires an engineering approach.

Here is all the characteristics, remember 5: Large Complex Teams Diverse stakeholders Family of products Many parallel changes Long lived Expensive Large Consequences

8) Explain the role of social aspects in software engineering.

IF I AM THINKING ABOUT THIS IN THE CONTEXT THAT HE WANTS, HERE IS MY ANSWER: Software engineering has social aspects to it for everything to go smoothly. Developers must communicate with customers frequently to see if what is being developed is what the customer is looking for. Developers must also communicate with the team that they are on to ensure that everyone is on the same page during development. In all, software engineering is a social discipline, because if communication between clients, developers, and project managers did not occur, the end project may not be satisfactory, get done in a timely manner, or get completed at all for that matter.

15) What is a business model canvas?

In general, the canvas is the outline for the business that define any key relations with other entities that will work to support your business and the product you are working to create. t assists firms in aligning their activities by illustrating potential trade-offs.

23) Give 5 information sources for requirements elicitation.

Informal meeting Interviews Observation Questionnaires Procedures and task descriptions

25) What is MVP and what is it for?

Minimal Viable Product - is a development technique in which a new product is developed with sufficient features to satisfy early adopters.

7) Explain why most software projects are delivered after the deadline, over the budget, with failures, or without satisfying the clients. How to improve this situation?

Most software projects are delivered after the deadline, over budget, with failures, and/or without satisfying the clients due to lack of communication between the developers and the customer. By assuming what the customer wants, and not constantly questioning the person that the software is being developed for, developers may not develop the proper product for the consumer. Delivering software after the deadline, and over budget typically occurs because either the developer and or the customer don't live up to the virtue of realistic expectations, causing too much work to be laid out in too short of a time.

21) How to evaluate the verifiability of the following quality attributes: performance, reliability, portability, and usability.

Performance - Any system that needs to operate quickly and efficiently when running to produce results fast Reliability - Ensure that all critical systems have a near 0% failure rate and that if a failure does occur the system will be able to maintain all changes on restart Portability - The system is able to adapt easily, install easily, and be easily replaceable if it were to break Usability - Any system that can easily accessed and navigated by the average user who has little to now issue understanding the operations of the system

How the value proposition and the software features relate to each other. Give examples

Product Features do not equal the value propositions. The V.P.'s deliver them.

2) What is the relation of production and science to the establishment of a professional engineering?

Production leads to a higher demand for a product and in this case, it means mass production of the product engineering. To be able to do this, it must be able to reproduce itself in different situations on a larger scale. With the addition of science, a more systematic, consistent, and reliable method is formed to produce higher quality results. Verbatim from the slides: "Science+commerce leads to professional engineering"

37) When is it better to model something as an associated inheritance instead of an inheritance?

Similar to the previous question, associated inheritance would give the user the ability to add a child class that didn't already exist, which is good if the developers wanted to give users more control. In the event that the developers did not want the user to have much control, one would use plain old inheritance.

5) What are the main 8 software engineering activities?

Software Conception, Requirements engineering, analysis, design, implementation, testing, deployment, evolution

9) Explain why software deteriorates over time.

Software deteriorates over time because technology continues to push forward and update. As technology changes, changes in software must reflect this behavior. This, as well as bug fixes, and software improvements are required to keep a standard user base.

1) What is software engineering and how does it differ from other engineering disciplines?

Software engineering is the systematic approach using disciplines like computer science to develop high-quality solutions to software problems. It's also the study of approaches for creating the most effective solutions. How it's different from other engineering disciplines: Each solution is so unique that it's difficult to create one method to create effective and reliable software. Solutions have low manufacturing costs are low and are not restricted by physical entities like physics.

12) What are the problems of overkill / over-engineering in software engineering?

Software may be developed that will never be utilized by the user, an overabundance of time may be taken to complete the project, and the software may become too complicated for a user to make use of.

Confirmation Bias

Tendency to search for, interpret, favor, and recall information in a way that confirms one's preexisting beliefs or hypotheses.

13) What is the goal of software inception?

The main goal of software inception is to thoroughly understand the problem and the solution to the problem. That is outlining the project as a whole from scope to use cases, and identifying risks, the feasibility of the project, as well as cost/time estimates. The goal is to know as much about the problem as the solution before trying to tackle the problem.

11) Explain the concept of "the mythical man-month."

The main idea of "the mythical man-month" is throwing more man power at a late software project will only make it later. Any projects being developed will only slow down with the more people you have working on it later in its lifetime.

17) What is the Problem-Solution Fit and what is its importance?

The problem-solution fit is identifying and validating a problem or need in a market, that enough people care about, and the ability to create a feasible solution to solve said problem. This fit is important for actually identifying potential problems that some software solution can actually solve. Being able to find problems within a market to solve is just as hard, if not harder, than actually coming up with a solution to the problem itself. This fit also helps to drive innovation and development within software engineering.

40) Give an example of a model that contains an unnecessary redundancy.

This is redundant because you could just go through Section to see the other objects, there does not need to be a direct connection from Course to Student.

18) How does the Consumer Development methodology work?

This methodology works through software engineers gaining a better understanding of their stakeholders to develop a solution that will actually solve some problem. It involves a much more open and easily accessible relationship between understanding the customer and developing a product. Ideally, the customer will give you the best possible understanding of the product that you are looking to develop for them.

28) Explain the philosophical difference between writing complete use-case descriptions and writing user stories. By philosophical difference consider that it is not in relation to * how * to write each of the requirements, but to the motivation that led to defining the format in question.

User stories are used as a form of dialogue between developer and stakeholder, allowing for communication and discussion about a feature to be implemented. Easily represents the Who, What, and Why for the feature. Usually is a chunk of functionality to implement for a set of requirements that can be easily accomplished or estimated. Use-case descriptions will often describe in more detail than a user story how a user will interact with the system or how components of a system will interact with each other. They also help to detail the general flow of the interaction and how different things can happen at different stages in the interaction. Use-cases may detail one user-story but will often be split into multiple user stories depending on the complexity of the user case.

22) Compare how requirements engineering is done in a waterfall cycle and in a iterative cycle.

Waterfall goes through each step of the process, ideally never going back to a previous step in the cycle. For an example, once you have established the requirements for the software and moved on to analysis, you cannot go back to requirements. However, in an iterative model, you will go through the process once, then go back and reevaluate any changes that need to be made to any portion of the design. This allows for a much more realistic development cycle using the strengths of software engineering practices.

35 )When is it better to model something as an enumeration instead of an associated class?

When data is more permanent and needs to be of a specific thing such as types of products that mostly go unchanged. -Don't need to add new categories

43) When is it worth it to store in a database the value of a derived property?

When it is a value that needs to be fixed in time.

41) When are user actions represented in a class diagram?

Whenever the user has some sort of interaction with the elements of the system. They are usually denoted by a name of the action over the link between the user and the system element.

42) How can you change a 1 to many association to register the history of this association? Give an example.

You need to make it many to many. (i.e.) Driver to vehicle.

29) Explain what includes and extends relationships are in use cases.

You use include dependencies whenever one use case needs the behavior of another. An extending use case continues the behavior of a base use case. This allows an extending use case to continue the activity sequence of a base use case when the appropriate extension point is reached in the base use case and the extension condition is fulfilled. An extending use case is, effectively, an alternate course of the base use case.


Conjuntos de estudio relacionados

Ch 36: Pretest, Post Test, Chapter Test

View Set

Module 6: Chapter 12 - Crisis Intervention

View Set

DECA Marketing Cluster Practice Exam

View Set

Language Arts Cumulative Exam 76%

View Set

Unit 2 - Chapter 13 - Linear Velocity and Acceleration

View Set