week 1 Flashcards
Agile , OOP , UML
describe a methodology.
a collection of mtpt models , techniques , principles & tools used
by developers to bulid a compuetr software
give examples of a models
waterfall , incremental , spiral
examples of software development techniques
object oriented
prototype
cleanroom
agile
it proponents believe.
-bcz current software development processess are heavyweight. many thingfs done in the process are not related or relevant to the product being produced.
- current software development is too rigid. difficult with incomplete or changing requirements.
- more active customer invlovement needed. bcz waterfall focuses on process instead of the end users.
-
Agile methodologies.
- stages arent cumbersome like traditinal methods.
- people oriented rather than process oriented.
- has several agile methods like extreme programming , Scrum & crystal family
- no single defintion . is a set of principles, not a rigid process. Teams adapt these principles to their specific context, leading to various interpretations and implementations.
state and expalin agile manfiesto
-individuals and interactions . over processes and tools
- working software over comprehensive documentation
- customer collaboration over contract negotiation
- respnding to change over falling a plan
charateristics of lightweight methodologies
People-Oriented – values all people responsible for system customers, developers, stakeholders and end users
Conformance to outcomes - agile methodologies value conformance to the actual results as opposed to conformance to the detailed plan. (concern is on the final product rather than on a detailed plan)
Balancing Flexibility & Planning – plans made now do not affect future decisions that much.
Decentralized Approach- Decision making is not only made by management, but developers can make decision eg technical decision
advantages of agile / lightweight
Flexible approach
Accommodate changes
Faster delivery
Customer satisfaction
Disadvantages of Lightweight methodologies
-Experts not always on hand
-Progress cannot always be tracked
Extreme Programming (XP) characteristics
-Short iteration cycles (2-3 weeks)
-Communication and Feedback
-Concentrates on Productivity
-Pair Programming Approach
-Complete customer involvement
-Frequent Integration
Scrum characteristics
-Very short iteration cycles(30 days)
-Sprint meetings held for each iteration
-Demonstration of updates
-Close monitoring through scrum meetings
-More importance to working software
OO programming
organizin software as a collection of objects with a certain state and behaviour.
OOD
based on the identification and organization of objects.
concerned with developing object-oriented models of a software/system to implement the requirements identified during OOA. Models the solution
What is A model?
an abstraction of something . purpose is to understand the product b4 developing it.
abstraction make it possible to deal with complexity.
eg of modelling users.
Architects. map showing roads
tailors
sw engineers
mechanics
protocols
OO advantages
-as people think in terms of objects it allows them to map objects to real life entities. making it easier to develop and undrstand what they are doing.
OOP Advantages.
-Save development time (and cost) by reusing code. once an object is created it can be used in other applications.
-easier debugging. classes can be tested independently. reused objects have been tested.
object?
complex data type thay
has
-state (attributes)
-behavior(methods)
Abstraction
focuses on the important facts about the object at hand to design , produce , and describe so that it can be easily used without knowing the details of how it works. in java abstract classes are used.
e.g driving a car yet you dont know the gasoline and airare mixed and ignited.
Encapsulation
focuses on hiding data , internal structure and implementation details of an object.
the object exposes what is need to interact with it through an interface
interface?
a named set of operations that chacterize the behavior of an object.
Inheritance
form of on code reuse in which new function is obtained by extending the implementation of an existing object. consist of superclass and sub class.
the subclass/ specialization extends the implemantation with additional attributes and methods.
adv of inheritance
-new implementation is easy . since most of it is inherited.
-easy to modify or extend the implementation being uesd.
dis of inheritance
breaks encapuslation bcz it exposes a subclss implementation details of its superclass.
sub classes may have to be changed if the implementation of the superclass changes.
implementation inherited from superclassses cant be changed at run time.