Posts

Database Normalization : 1NF, 2NF, 3NF, BCNF, 4NF

Image
What is normalization? Breaking down a table into functionally independent tables Follows three-step procedures {first normal form, second NF, third NF} Why normalization? Reduce data redundancy, and thus data anomalies 1NF All the key attributes are defined There are no repeating groups in the table All attributes are dependent on the primary key 2NF It is in 1NF It includes no partial dependencies Partial dependency : attributes are dependent on only a part of a composite PK Fig: Dependency Diagram 3NF It is in 2NF It includes no transitive dependencies Transitive dependency : nonkey (nonprime) attributes are dependent on another nonkey attribute BCNF A Table is in BCNF when it is in 3NF and contains no non-key attribute that determines a key attribute. – Convert to BCNF by exchanging the determinate with the key attribute and then resolving the partial dependency with a new table. 4NF A Table is in 4NF when it is in 3NF table with no multi-valued dependencies :  – Convert to 4NF

Framework activities and Process Flow in Software Engineering

Image
Framework Activities Communication Planning Modelling Construction Deployment Process Flow Linear Iterative Evolutionary Parallel

Process Models in Software Engineering

Waterfall Prototyping Evolutionary Unified

Forms of Software Documentation: Software Engineering

 2 types:     * Process documentation     * Product documentation Process Documentation:     - track internal development process      - relatively short lifespan     - is about cost | schedule | funding | standards     - some design decision papers are moved to product docs when they become implemented. Product Documentation:     1. System Documentation:               -operation manual               -SRS | Architecture Design | Detail Design | Commented source code | Test plans | Test cases | Validation and Verification plans and results | Known bugs, etc        2.  User documentation | User Manual               a) End User Documentation               b) System Administrator Documentation

Incremental Model : Software Engineering

 cost of implementing requirement change is reduced. amount of analysis and documentation that has to be redone is significantly less. easier to get customer feedback from software rather than judging progress from document. customers are able to gain values of software earlier than that is possible from waterfall model. incremental delivery means that software is used in real, operational process so user feedback is likely to be realistic. Phases that run in cycle: Planning [Estimation, Scheduling and Risk Analysis] Modelling [Analysis, Design] Construction [Coding, Testing] Deployment [Delivery, Feedback] Communication Limitations: if developed quickly, not cost effective to produce documents that reflect every changes. system degrade, messy codes accumulate as new increments are added.

Evolutionary Model : Software Engineering

 proposed by Barry Boehm [Spiral Model] couples the iterative nature of prototyping with controlled and systematic aspects of waterfall model software is developed in a series of evolutionary release during early iteration. The release might be a model or prototype. During later iterations, more complete versions are engineered. Anchor point milestones-combination of work products and condition that are attained along the path of spiral are noted for each evolutionary pass. realistic approach to develop large scale system and software. Limitations: demands direct consideration of tech risks at all stages of the project (considerable risk assessment expertise is relied on for success) before they become problematic.