Skip to main content

Notes


  • Object may have several interfaces, each of which is a view point on the methods that it provides.
  • Software process: related activities that leads to the production of the software
    • specification functionality and constraints are defined
    • development
    • validation validate to ensure that software does what customer wants
    • evolution evolve to meet changing customers needs.
  • plan-driven process activities are planed in advance, progress is measured against this plan.
  • agile process planing is incremental,
    • requirements are developed incrementally according to user priorities.
    • move towards a solution in a series of steps, backtracking when realizing a mistake
  • Component is a collection of objects that operate together to provide related functions and services.
  • Pattern is a way of reusing the knowledge and experience of other
    • is a description of the problem and the essence of its solution.
    • a well tried solution to a common problem
  • Frameworks are often implementation of design patterns
    • inversion of control, framework objects, not application specific objects, are responsible for control in the system.
    • framework objects invoke "callback method" that is linked to user-provided functionality.
    • framework rely on inheritance and polymorphism.
  • COTS "commercial off the shelf" is a software system that can be adapted to the need of different customers without changing the source code of the system "just extensive configuration".
ie: read from software engineer sommerville.

Comments

Popular posts from this blog

Not all Ps sting

  If someone meant to say Ps and pronounce it Bees. would this confuse you :). Ps is for the P that is the start of Properties and Practice Each application should have some properties and follow certain practices. Properties: Below are 5 properties we should try to have in our application with a small description of how to include them Scalable, Scale => Increase workload (horizontally scaling) Statless, no state should be shared among different application instances,  Concurrency, concurrent processing = Threads. Loosely coupled, decompose the system into modules, each has minimal dependencies on each other "modularization", encapsulating code that changes together "High cohesion".  API first, Interfaces, implementation can be changed without affecting other application. favor distribution of work across different teams.  Backing Services, "DB, SMTP, FTP ..." , treating them as attached resources, meaning they can easily be changed. Manageable, changi...

Micro-Service with mind-map

  If we were to give a definition to micro service, what will it be? A simple one is an architectural style, that functionally decomposes an application into a set of services, each service has a focused, cohesive set of responsibilities. Similar to most, it has to have some properties & practices, which we can categorize to a general ones and detailed ones “12-factors”.  Away from the 12 factor, Some general practice that be considered while decomposing a services:  Loosely coupled: minimum communication between Services. Cohesion: elements that are tightly related to each other and change together should stay together "Common Closure Principle (CCP)". Single responsibility principal (SRP): every micro-service should do one thing and do it exceptionally. When constructing an application or defining its architecture, we follow below three-step process: Identifying the system operations, functional requirement, which are the user stories and their associated user scena...

digging

Open SVG image in a browser, use arrows to navigate When you say digging, 1 st thought, most would think that you would plant a tree. How about digging in DATA 1 st Hadoop is a framework for processing large chunks of data, consisting of 2 modules HDFS: Hadoop Distributed File System "for managing files". Map-Reduce: hadoop methodology for processing data, where big chunks of data is divided into smaller chunks, each directed to the map f n to extract the needed data from, then the reduce f n where the actual processing we need takes place. Hadoop work on the whole data, in one time,  so it is considered Batch processing. 2 nd Hadoop eco-system It would be annoying, that each time you wish to do a task, you write a java code for each of the map function, then the reduce function, compile the code.. etc. yet Hadoop eco-system provide us with tools that could do so for us PIG: a scripting language "that is translated in the background to a ...