- Waterfall model
- Spiral model
- V model
- Unified Process
- Agile Software Development
- Extreme Programming (XP)
- Top-down and Bottom-Up design
Model Driven Design. It converts from model to program with generator. What is the advantage of MDD?
- Reduce development times
- Rapid prototypes for customer presentation
- easier change to new technologies and platforms
- Decoupling of domain and platform knowledge so software developers require less technical knowledge
- Model-code coherency
- Well defined software architecture
- Up to date software documentation
Model Driven Architecture is an approach to develop platform independent model to Platform specific models to computer run such as domain specific languages C, Java etc. In this topic I will explain AndroMDA, it is a Model driven architecture generator. It converts UML to programming language codes. There are four layers background of this generation;
- Presentation Layer (Struts, JSF)
- Business Layers (Java Beans, Spring)
- Data Access Layer (Hibernate)
- Data Stores (MySQL)
Unified Process (Rational unified Process - RUP)
RUP is iterative incremental model and in this model Use Cases are important so it requires detailed use cases. It has four phases;
- Inception: This step related with business case, project scope, use cases, architecture and risk analysis.
- Elaboration: This step related with the elaboration of cases in Inception step and defining the architecture of program.
- Construction: this step is development step and takes more effort than other steps. During the development all divided tasks have iteration and each iteration gives executable result.
- Transition: Deployment of project and finalizing the project.
Agile requires more communication among group members because it has general plan for long term, and it requires detailed planning for short term. This way gives more flexibility for project so this method easy adaptable to changes. It suitable with research project that have high risks.
Extreme Programming (XP)
It is a simple programming methodology, in this method whole program is divided in small parts and tested each part before implementation and after implementation. Every programmer responsible for own part but also can modify other files. It finish with the integration of the whole part. But during the developments step it requires common coding rules.
Software quality features
- Functionality: Are the required functions available in the software? Accuracy, suitability, interoperability, compliance, security.
- Reliability: How reliable is the software? Maturity, recoverability, fault tolerance.
- Usability: Is the software easy to use? learnability, understandability, operateability, attractiveness.
- Efficiency: How efficient is the software? time and resource behavior.
- Maintainability: How easy is it modify the software? Stability, analysability, ,changeability, testability.
- Portability: How easy is the transfer of the software to another environment. installability, replaceability, adaptability, coexistence.
What are the software quality conflicts?
- Lack of quality awareness: All involved person to develop software have to be informed about quality criteria.
- Different interest of involved persons: User focuses on usability of the software but at the other side developer focuses on maintainability.
- Time and cost: Accuracy of required times and efficiency.
- Modeling is necessary to meet requirements of clients with to-be and as-is analysis and also use cases.
- Modeling is helpful in correct design of software. Modeling and programming language is on different levels. Models says how to do, but programming language says how to do it.
- Modeling is helpful to acquire the appearing the structures. Structural aspects can be well represented using visual modeling languages.
- Modeling are used to documentation.
No comments:
Post a Comment