Software Engineering Flashcards
What is the role of a software engineer?
- Develop software solutions to achieve business goals.
- Understand customer needs and create best design.
- Quickly learn new and diverse disciplines and business processes.
- Design a solution
- Learn how to learn.
First law of software engineering
SE is willing to learn the problem domain.
Is Software engineering complex or complicated?
Complex! consists of many simple parts related to one another.
Complicated implies poorly understood or explained.
Software development methods (Waterfall, Incremental+Iterative, Agile)
WF: Phases and completion of artifacts before proceeding to subsequent phase. Not effective most of the time.
I+I: Break problem into smaller pieces, prioritize. Each iteration progress through development in more depth. Seek customer feedback and change coursed based on better understanding.
A: More aggressive I+I.
Define the Problem Domain
Figure out:
- System to develop
- Actors
- Concepts/objects (agents working in the system)
- Use Cases.
What is a concept map?
Useful for problem domain description.
Expressed in terms of CONCEPTS and PROPOSITIONS
Concept: Perceived regularities in objects, events, ideas. Represented by labels: green, high, acceleration, confused…
Proposition: statement of fact, either true or false (not both), expresses the relation among concepts.
Concept map Ex.
“My friend is coding a new program”
*You can deconstruct a phrase into propositions.
proposition | Concept | Relation | Concept
- | I | Have | Friend
- | Friend | engages in | coding
- | Coding | constructs a | program
- | program | is | new
How to formulate a concept map?
- List all concepts that can be identified in a problem domain.
- Create a table leaving relation empty.
- Come up with relations among concepts.
- Some concepts are related to several others.