Guidelines Based Software Engineering for Developing Software Components by Muthu Ramachandran (Journal of Software Engineering and Applications, 2012, 5, 1-6)
The term Software Engineering was coined by F. L. Bauer the chairman of 1968 NATO Software Engineer- ing conference held in Garmisch, Germany to promote a disciplined approach to developing software. The term Software is meant a list of machine instructions where as the Engineering is meant the use of disciplined appro- aches and laws when building software systems.
Software guidelines have been with us in many forms within Software Engineering community such as knowledge, ex-periences, domain expertise, laws, software design principles, rules, design heuristics, hypothesis, experimental results, programming rules, best practices, observations, skills, algorithms have played major role in software development.
In Software Design we use guidelines that help us to identify a suitable design criterion when faced with design decisions. Therefore software guidelines summarises expert knowledge as a collection of design judgements, rationales, and principles. This can be used by students/ engineers when learning about new principles with ex-amples and experts alike.
Source: http://www.SciRP.org/journal/jsea
http://sites.google.com/site/marinvlada/ | http://www.ad-astra.ro/marinvlada | Projects: c3.cniv.ro, c3.icvl.eu | M.Vlada, Facebook, Twitter, icvl4all | http://unibuc.academia.edu/MarinVlada | New Technologies in Education and Research (2010) ISBN 978-3-8433-6391-4 | www.elearning.ro
Thinking, knowledge, life, and the pursuit of happiness - all that matters. Microsoft Academic Search | FORMULAR Feedback
Do not forget to be creative! This is an option and a way to happiness. https://picasaweb.google.com/marinvlada/
Thinking, knowledge, life, and the pursuit of happiness - all that matters. Microsoft Academic Search | FORMULAR Feedback
Do not forget to be creative! This is an option and a way to happiness. https://picasaweb.google.com/marinvlada/
Showing posts with label gandirea algoritmica si proiecte. Show all posts
Showing posts with label gandirea algoritmica si proiecte. Show all posts
Tuesday, February 14, 2012
Sunday, July 24, 2011
Microsoft Azure Platform - Cloud computing
The Windows Azure Platform is a Microsoft cloud platform used to build, host and scale web applications through Microsoft datacenters. Windows Azure Platform is thus classified as platform as a service and forms part of Microsoft's cloud computing strategy, along with their software as a service offering, Microsoft Online Services.Note (in romanian): Premieră în 2011 pentru România
Modulul de publicare a informaţiilor pe Internet (Sistemul informatic pentru examenele naţionale - realizat de Siveco Romania) a folosit platforma de Cloud computing Microsoft Azure, ceea ce asigură disponibilitate permanentă, capacitate de calcul practic infinită, redundanţă şi securitate a informaţiilor. Acest modul a fost conceput special pentru a face faţă atât unui număr foarte mare de accesări simultane, cât şi posibilelor atacuri menite să întrerupă disponibilitatea serviciilor furnizate. Conform www.trafic.ro, pe 12 iulie 2011 s-a înregistrat un nou record de vizitatori unici pentru http://portal.edu.ro, cu 828.935 într-o singură zi şi peste 24 de milioane de afişări. Cele mai accesate site-uri ale portalului au fost http://admitere.edu.ro, http://bacalaureat.edu.ro şi http://titularizare.edu.ro.
Sursa: http://portal.edu.ro/index.php/articles/news/11492
About Windows Azure Platform
The Windows Azure Platform provides an API built on REST, HTTP and XML that allows a developer to interact with the services provided by Windows Azure. Microsoft also provides a client-side managed class library which encapsulates the functions of interacting with the services. It also integrates with Microsoft Visual Studio so that it can be used as the IDE to develop and publish Azure-hosted applications. Windows Azure became commercially available on 1 Feb 2010.
"Running applications on machines in an Internet-accessible data center can bring plenty of advantages. Yet wherever they run, applications are built on some kind of platform. For on-premises applications, this platform usually includes an operating system, some way to store data, and perhaps more. Applications running in the cloud need a similar foundation. The goal of Microsoft's Windows Azure is to provide this."
Sharding with SQL Azure
Database sharding is a technique of horizontal partitioning data across multiple physical servers to provide application scale-out. SQL Azure is a cloud database service from Microsoft that provides database functionality as a utility service, offering many benefits including rapid provisioning, cost-effective scalability, high availability and reduced management overhead. SQL Azure combined with database sharding techniques provides for virtually unlimited scalability of data for an application.
Source: www.microsoft.com/windowsazure/whitepapers/
Case Studies: www.microsoft.com/windowsazure/evidence/
Example
New NASA Web Site Engages Citizens to Help Explore Mars - http://beamartian.jpl.nasa.gov/
"Researchers at the NASA Jet Propulsion Laboratory (NASA/JPL) wanted to solve two different challenges—providing public access to vast amounts of Mars-related exploration images, and engaging the public in activities related to NASA’s Mars Exploration Program in order to encourage learning in science, technology, engineering, and mathematics. Using a variety of technologies, NASA/JPL created its new BeAMartian Web site . The site provides entertaining and engaging ways to view and interact with information delivered by Mars-based rovers and orbiters. The goal is to let the public participate in exploration, making contributions to data processing and analysis. It also provides a platform that lets developers collaborate with NASA on solutions that can help scientists analyze vast amounts of information that can be used to understand the universe and support future space exploration."
What is Cloud Computing?
Ref.: http://mvlada.blogspot.com/
Wednesday, June 15, 2011
Examples of papers

Examples of papers (Bachelor of Science): Informatics
Exemple de lucrari de Licenta: Informatica
Facultatea de Matematica si Informatica (FMI), Universitatea din Bucuresti
1. Laura Arhire, Parser pentru gramatici de inserare cu dependinte sortate, FMI, 2008
- http://funinf.cs.unibuc.ro/~flmanea/arhire.pdf
2. Alexandru Popa, Sisteme interactive cu registri si voci si limbajul Agapia, FMI, 2008
- http://funinf.cs.unibuc.ro/~flmanea/popa.pdf
3. Alexandru Szoke, Aspecte ale implementarii retelelor de procesoare biologice, FMI, 2008
- http://funinf.cs.unibuc.ro/~flmanea/szoke.zip
4. Alexandru Tomescu, Retele de sortare implementate cu P sisteme, FMI, 2008
- http://funinf.cs.unibuc.ro/~flmanea/tomescu.pdf
Sursa: Florin Manea's Website
- http://flmanea.blogspot.com/2008/06/licenta-la-facultatea-de-matematica-si.html
Total Lunar Eclipse 15 Jun 2011
Tuesday, March 22, 2011
The story of Sissa and Moore

NP-complete problems
(Chapter 8 by S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani )
Source: Algorithms (2007 McGraw-Hill Higher Education) by
Sanjoy Dasgupta, University of California - San Diego
Christos Papadimitriou, University of California at Berkeley
Umesh Vazirani, University of California at Berkeley
Note: This book evolved over the past ten years from a set of lecture notes developed while teaching the undergraduate Algorithms course at Berkeley and U.C. San Diego.
- http://cseweb.ucsd.edu/~dasgupta/book/index.html
- http://highered.mcgraw-hill.com/sites/0073523402/
The story of Sissa and Moore
Ref.: www.cs.berkeley.edu/~vazirani/algorithms/chap8.pdf
"According to the legend, the game of chess was invented by the Brahmin Sissa to amuse and teach his king. Asked by the grateful monarch what he wanted in return, the wise man requested that the king place one grain of rice in the rst square of the chessboard, two in the second, four
264-1 = 18,446,744,073,709,551,615 grains of rice, enough rice to pave all of India several times over!
In 1965, computer chip pioneer Gordon E. Moore noticed that transistor density in chips had doubled every year in the early 1960s, and he predicted that this trend would continue. This prediction, moderated to a doubling every 18 months and extended to computer speed, is known as Moore's law. It has held remarkably well for 40 years. And these are the two root causes of the explosion of information technology in the past decades: Moore's law and efficient algorithms.
It would appear that Moore's law provides a disincentive for developing polynomial algorithms. After all, if an algorithm is exponential, why not wait it out until Moore's law makes it feasible? But in reality the exact opposite happens: Moore's law is a huge incentive for developing ef cient algorithms, because such algorithms are needed in order to take advantage of the exponential increase in computer speed.
Here is why. If, for example, an O(2n) algorithm for Boolean satis ability (SAT) were given an hour to run, it would have solved instances with 25 variables back in 1975, 31 variables on the faster computers available in 1985, 38 variables in 1995, and about 45 variables with today's machines. Quite a bit of progress-except that each extra variable requires a year and a half's wait, while the appetite of applications (many of which are, ironically, related to computer design) grows much faster. In contrast, the size of the instances solved by an O(n) or O(n log n) algorithm would be multiplied by a factor of about 100 each decade. In the case of an O(n2) algorithm, the instance size solvable in a fxed time would be multiplied by about 10 each decade. Even an O(n6) algorithm, polynomial yet unappetizing, would more than double the size of the instances solved each decade. When it comes to the growth of the size of problems we can attack with an algorithm, we have a reversal: exponential algorithms make polynomially slow progress, while polynomial algorithms advance exponentially fast! For Moore's law to be refected in the world we need efficient algorithms.
As Sissa and Malthus knew very well, exponential expansion cannot be sustained indefinitely in our nite world. Bacterial colonies run out of food; chips hit the atomic scale. Moore's law will stop doubling the speed of our computers within a decade or two. And then progress will depend on algorithmic ingenuity-or otherwise perhaps on novel ideas such as quantum computation, explored in Chapter 10."
New: S. Dasgupta, Two faces of active learning, Theoretical Computer Science, 412(19): 1767-1781, 2011
- http://cseweb.ucsd.edu/~dasgupta/papers/twoface.pdf
Algorithmic Thinking
"Algorithms are the engines of a great majority of systems, natural and artificial alike. This course introduces algorithmic thinking as a discipline for reasoning about systems, taming their complexities, and elucidating their properties. Algorithmic techniques, along with their correctness and efficiency, will be taught through reasoning about systems of interactions, such as markets, that are ubiquitous in our highly connected world."
(Luay Nakhleh, Course: Algorithmic Thinking, COMP 182, www.clear.rice.edu/comp182/)
Laboratory activities are essential to learning activities. Teachers are required to combine computer more effectively as teaching classes with laboratory classes which actually ends a cycle to solve computer problems: the problem --> the mathematical model --> the algorithm --> the program --> computer --> solutions -->check the resulting. There are equivalent Algorithm-Program-Computer System and operations carried out by the algorithm in cyberspace (virtual), that made the Computer System operations by executing the corresponding algorithm program. Algorithm to simulate all operations will be triggered by launching the appropriate program execution algorithm (Vlada, 2004): Abordarea modernă a conceptului de algoritm, CNIV-2004, Noi tehnologii de E-Learning, Conferinţa Naţională de Învăţământ Virtual, Software Educaţional, Ediţia a II-a, [online], Facultatea de Matematică şi Informatică, Universitatea din Bucureşti , Editura Universităţii din Bucureşti,
http://fmi.unibuc.ro/ro/cniv_2004/
Ref.: http://fmi.unibuc.ro/ro/pdf/2004/cniv/gandirealgoritmica.pdf
Monday, March 21, 2011
Professor John McCarthy

Ph.D. John McCarthy (1927-2001), Professor Emeritus of Computer Science at Stanford University.
John McCarthyis an American computer scientist and cognitive scientist who received the Turing Award in 1971 for his major contributions to the field of Artificial Intelligence (AI). He was responsible for the coining of the term "Artificial Intelligence" in his 1955 proposal for the 1956 Dartmouth Conference and is the inventor of the Lisp programming language.
- http://www-formal.stanford.edu/jmc/
"It is reasonable to hope that the relationship between computation and mathematical logic will be as fruitful in the next century as that between analysis and physics in the last. The development of this relationship demands a concern for both applications and mathematical elegance." (John McCarthy, 1963).
- Patrick J. Hayes and Leora Morgenstern, On John McCarthy’s 80th Birthday, in Honor of His Contributions, AI Magazine Volume 28 Number 4 (2007); http://www.aaai.org
- Actions and Other Events in Situation Calculus, by John McCarthy, 2002. Published in the Proceedings of the Eighth International Conference on Principles of Knowledge Representation and Reasoning (KR-02). San Francisco: Morgan Kaufmann Publishers. This paper extends the original McCarthy-Hayes situation calculus in several significant ways, in order to handle natural events, concurrency, and combined linear and branching time.
- History - AI and CS, www-formal.stanford.edu/jmc/history/
Friday, September 17, 2010
Viitor vs. Viziune: Turneul CNIV & ICVL 2010-2015
NEW TECHNOLOGIES IN EDUCATION AND RESEARCH
Promovarea tehnologiilor moderne în educaţie şi cercetare
2010 - Către o societate a învăţării şi a cunoaşterii - 2030
LEARNING-KNOWLEDGE-DEVELOPMENT: Virtual Environments for Education and Training, Software and Management for Education
Phase I - Period 2000-2010: Research, Education and Training
Phase II - Period 2010-2020: e-Skills for the 21st Century
Phase III - Period 2020-2030: Intelligent Systems and Virtual Technologies
Deviză / Slogan:
C3VIP: "Consecvenţă-Competenţă-Claritate-Viziune-Inovare-Performanţă"
C3VIP: "Consistency-Competence-Clarity-Vision-Innovation-Performance"
Proiectele CNIV (fondat 2003) şi ICVL (fondat 2006) sunt manifestări ştiinţifice ce promovează tehnologii şi metodologii inovative în educaţie, în cercetare şi în perfecţionarea continuă, atât în mediile preuniversitar, respectiv universitar, cât şi în mediul de afaceri. Structurate şi organizate după principii europene şi standarde internaţionale, cele două proiecte încurajează şi promovează următoarele:
• lucrul la proiecte,
• activităţile colaborative,
• metodele şi experimentele ştiinţifice,
• gândirea creativă şi intuiţia,
• argumentaţia şi demonstraţia.
Referinte: www.cniv.ro, www.icvl.eu
- Claims and Challenges in Evaluating Human-Level Intelligent System: http://vimeo.com/5159885
- The new designers of intelligent systems that change your world : http://www.youtube.com/watch?v=dL3Edx9DnNo
- The 2nd Asian Conference on Intelligent Information and Database Systems: http://aciids2010.hueuni.edu.vn
- Dr. James Albus - Intelligent System Design: http://video.google.com/videoplay?docid=4221162277183167417#
Decebalus REX (cadoul lui Dragan Constantin facut Romaniei) vs. Statue of Liberty (cadoul Frantei făcut SUA)
Promovarea tehnologiilor moderne în educaţie şi cercetare
2010 - Către o societate a învăţării şi a cunoaşterii - 2030
LEARNING-KNOWLEDGE-DEVELOPMENT: Virtual Environments for Education and Training, Software and Management for Education
Phase I - Period 2000-2010: Research, Education and Training
Phase II - Period 2010-2020: e-Skills for the 21st Century
Phase III - Period 2020-2030: Intelligent Systems and Virtual Technologies
Deviză / Slogan:
C3VIP: "Consecvenţă-Competenţă-Claritate-Viziune-Inovare-Performanţă"
C3VIP: "Consistency-Competence-Clarity-Vision-Innovation-Performance"
• lucrul la proiecte,
• activităţile colaborative,
• metodele şi experimentele ştiinţifice,
• gândirea creativă şi intuiţia,
• argumentaţia şi demonstraţia.
Referinte: www.cniv.ro, www.icvl.eu
- Claims and Challenges in Evaluating Human-Level Intelligent System: http://vimeo.com/5159885
- The new designers of intelligent systems that change your world : http://www.youtube.com/watch?v=dL3Edx9DnNo
- The 2nd Asian Conference on Intelligent Information and Database Systems: http://aciids2010.hueuni.edu.vn
- Dr. James Albus - Intelligent System Design: http://video.google.com/videoplay?docid=4221162277183167417#
Decebalus REX (cadoul lui Dragan Constantin facut Romaniei) vs. Statue of Liberty (cadoul Frantei făcut SUA)
Wednesday, August 4, 2010
A Model of Learning Objectives
A Taxonomy for Learning, Teaching, and Assessing:
A Revision of Bloom's Taxonomy of Educational Objectives (2009)
Model creadet by Rex Heer, Centre for Excellence in Learning and Teaching, IOWA STATE UNIVERSITY
Ref.:
- www.celt.iastate.edu/teaching/RevisedBlooms1.html
(see figure: Mouse-over the colored block)
- Anderson, L.W. (Ed.), Krathwohl, D.R. (Ed.), Airasian, P.W., Cruikshank, K.A., Mayer, R.E., Pintrich, P.R., Raths, J., & Wittrock, M.C. (2001). A taxonomy for learning, teaching, and assessing: A revision of Bloom’s Taxonomy of Educational Objectives (Complete edition). New York: Longman.
Table 1. The cognitive processes dimension — categories, cognitive processes (and alternative names)
Table 2. The knowledge dimension — major types and subtypes
Sunday, February 7, 2010
Conceptele de Algoritm si Proiect
... sau despre lucrul la proiecte si lucrul in echipe. ... DRAFT ...
Proiectul Gutenberg (1971): http://ro.wikipedia.org/wiki/Proiectul_Gutenberg
Concepte ce au revolutionat stiinte si au avut impact deosebit in planificarea, organizarea, executia si controlul activitatilor umane si nu numai.
- daca cineva (amator, specialist sau expert) ar incerca sa defineasca mai complet aceste concepte, cu siguranta nu va obtine o definire completa. Este vorba despre dinamica semnificatiei / semanticii acestor concepte ce se schimba rapid.
O idee de start: Maureen Sprankle and Jim Hubbard, Ploblem Solving and Programming Concepts, Pearson - Prentice Hall, 2009, 8th ed.
O alta idee de start: În etapa actuală de dezvoltare ştiinţifică, tehnică, socială şi economică, rezolvarea unei probleme dintr-un domeniu (matematică, fizică, chimie, economie, medicină etc. ) reprezintă o activitate de creaţie, ce reclamă un raţionament sau mai multe, prin construirea, generarea, şi descrierea următoarelor procese (Link, M. Sudhanshu, 2006):
• proces demonstrativ (demonstraţia) care să arate existenţa unei soluţii sau a mai multor soluţii şi/sau să determine efectiv soluţiile exacte; în acest caz, specialistul sau expertul trebuie să aibă cunoştinţe solide de matematică şi implicit cunoştinţe corespunzătoare domeniului; rolul matematicii este esenţial;
• proces computaţional (algoritmul) care să codifice un proces demonstrativ, o metodă sau o tehnică de rezolvare în scopul determinării (eventual aproximative) a soluţiilor exacte; în acest caz, specialistul sau expertul trebuie să aibă experienţă în domeniul modelării şi utilizării calculatorului; rolurile informaticii şi ale IT (tehnologiei informaţiei) sunt esenţiale. ("De la teorema lui Green la geometria computaţională", CNIV 2006 )
Deoarece am folosit cuvintele "revolutionar, impact, deosebit", pentru argumentare, vom descrie 3 exemple:
1. Limbajele de programare (Programming Languages). Evolutia si utilizarea conceptelor de Algoritm si Proiect au contribuit la inventarea, conceperea, elaborarea, implementarea si utilizarea limbajelor de programare ce sunt limbaje artificiale (limbajele sunt instrumente ale gandirii, vezi "Limbaje si Cunoastere vs Modelare si Procesare", CNIV 2005, http://marinvlada.googlepages.com/Modelare_vlada.pdf).
Un limbaj de cunoaştere este sistemul virtual/logic
L = ( V, Sin, Sem, O, C, T, Tc) , unde
V = vocabular/alfabet, Sin = sintaxa (reguli), Sem = semantica (reguli), O = obiecte, C = concepte / termeni, T = teorii / metode / tehnici de rezolvare, Tc = tezaurul cunoaşterii (baza de cunoştinţe).
Este vorba de peste 2500 de limbaje de programare vechi si noi. (A Chronology of Influential Languages, Sursa: Maintained by Bill Kinnersley, University of Kansas)
- Complexitatea si varietatea este data de schema ce reprezinta evolutia limbajelor de programare (arborele genealogic). A History of Programming Languages (Programming paradigm):
• 1957 FORTRAN
• 1958 ALGOL • 1960 LISP
• 1960 COBOL • 1962 APL
• 1962 SIMULA • 1964 BASIC
• 1964 PL/I • 1966 ISWIM
• 1970 Prolog • 1972 C
• 1975 Pascal • 1975 Scheme
• 1977 OPS5 • 1978 CSP
• 1978 FP • 1980 dBASE II
• 1983 Smalltalk-80 • 1983 Ada
• 1983 Parlog • 1984 Standard ML
• 1986 C++ • 1986 CLP(R)
• 1986 Eiffel • 1988 CLOS • 1988 Mathematica
• 1988 Oberon • 1989 HTML • 1990 Haskell • 1994 Perl 5 • 1995 Java, Delphi • 1997 JavaScript, PHP • 2000 C# ...
- Dictionary of Programming Languages (Dictionary and script maintained by Neal Ziring)
Ca rezultat al unui "proiect" de cercetare pentru domeniul militar, savantul John von Neumann a conceput arhitectura unui calculator electronic (arhitectura von Neumann din 1945, raport de cercetare) ce ste valabila si astazi. Cu aceasta a inceput aventura construirii calculatoarelor moderne:
a) componentele de baza ale unui calculator: memorie, procesor, sisteme input/output
b) limbaje de programare si sisteme de operare
c) algoritmi de calcul si programe de aplicatii
S-a realizat o competitie intre componenta hardware (partea tehnologica) si componenta software (partea logica) a calculatoarelor. Aceasta evolutie si dezvoltare se poate intelege doar daca se scoate in evidenta evolutia conceptului de Algoritm si inventarea unei noi abordari privind activitatea de cunoastere a omului in aventura sa catre evolutie si dezvoltare: planificare, organizare, activitati, control, verificare, toate acestea reprezentand activitatea omului pe baza de Proiecte.
1950 - se inventeaza "diagrama Gantt" conceputa de Henry Gantt - întemeietorul managementului de proiect si considerat părintele planificării şi al tehnicilor de control.
- Vlada, M., Conceptul de algoritm-abordare modernă, Gazeta de informatică, vol. 13/ 2 si 3, 6 si 7 pp. 25-30, pp. 35-39, pag. 43-48, pag. 42-48 Agora, Cluj Napoca, 2003.
http://www.ginfo.ro/revista/13_2/babel.pdf
http://www.ginfo.ro/revista/13_3/babel.pdf
http://www.ginfo.ro/revista/13_6/babel.pdf
http://www.ginfo.ro/revista/13_7/babel.pdf
- Vlada M., Abordarea modernă a conceptului de algoritm, Conferinta Natională de Învătământ Virtual, editia a II-a, 2004, pag. 231-240 - http://marinvlada.googlepages.com/concept_algoritmi.pdf
2. Proiectul japonez (1981-1990) si proiectele europene (1990-2010).
Lansarea Proiectului japonez în anul 1981
Deceniul 8 al secolului XX-lea a fost unul al marilor succese în domeniul Inteligenţei artificiale, al dezvoltării reţelelor de calculatoare şi al răspândirii limbajelor de programare moderne.
Lansarea Proiectului japonez în anul 1981 pentru construirea calculatorului de generaţia a V-a la începutul anilor ’90; acesta prevedea o revoluţie în domeniul calculatoarelor prin aşa-numitele sisteme de procesare a informaţiei de cunoaştere (KIPS-Knowledge Information Processing Systems); având finanţare guvernamentală de 1 miliard $ şi colaborarea mai multor firme japoneze importante, s-a înfiinţat un institut special ICOT (Institute for New Generation Computer Technology) care a editat revista internaţională "New Generation Computing" (www.ohmsha.co.jp/ngc), astăzi fiind una dintre cele mai prestigioase reviste din lume; proiectul a avut un impact deosebit pe plan mondial; începe să se predea Inteligenţa Artificială ca disciplină a Informaticii în învăţământul superior.
Aparitia produselor software - software engineering
Definiţie. Un produs software este un rezultat/produs obţinut în urma unui proces creativ uman, fiind un obiect/istrument utilitar, distinct şi identificabil individual ca element virtual/logic şi care fizic există în format electronic pe un suport de memorie magnetică/optică de tip FD (floppy disk), HD (hard disk), CD (compact disk) sau Memory Stick. Formatul electronic al produsului poate reprezenta: un program ce rezolvă anumite probleme, un sistem de operare, un compilator, un interpretor, un program convertor, un program utilitar, un mediu de operare, un mediu de programare, un mediu de rezolvare, o platformă, o procedură, un program editor, un generator de programe, un program ativirus, un document HTML/PHP/ASP, un program de e-mail, un browser etc.
Astăzi,
există deja dezvoltat un domeniu ingineresc destinat produselor software, şi anume ingineria software (software engineering; R. Pressman, Software Engineering. A Practitioner’s Approach, Mc-Gaw Hill, 1987).
Conform definiţiei moderne a ingineriei software la baza elaborării unui produs software se află următoarele aspecte (I. Jurca, Programarea orientată pe obiecte în limbalul C++, Ed. Eurobit, Timişoara, 1992):
• Metode – cunoştinţe de specialitate (« know how ») privind planificarea, analiza cerinţelor, proiectarea, codificarea, testarea, utilizarea şi intreţinerea;
• Unelte – diverse tehnologii automate sau semiautomate ce oferă sprijin pentru metode (Exemplu : CASE-Computer Aided Software Engineering);
• Proceduri – realizează secvenţele prin care se vor aplica metodele, precum şi produsele ce execută ieşirile (rapoarte, documente, formulare etc.) .
La baza obţinerii produselor software se află evoluţia şi dezvoltarea limbajelor de programare.
În general, la baza evoluţiei societăţii omeneşti se află evoluţia şi dezvoltatea cunoaşterii umane. Cunoaşterea este dependentă de limbajele cunoaşterii (M. Vlada, CNIV 2005-2009).
Proiecte mondiale
Deceniul 9 al secolului XX-lea
a fost unul al marilor realizări în domeniul Tehnologiei informaţiei şi comunicaţiei (IT&C) prin dezvoltarea şi răspândirea tehnologiilor WEB şi reţelei Internet, perfecţionarea sistemelor de operare şi a mediilor de programare:
-apariţia sistemului de operare Linux – în anul 1992 apare primul sistem de operare “free software” cu facilităţi deosebite pentru reţeaua Internet care utilizează protocoale de comunicaţii (TC/IP, FTP, IPX etc) pentru serviciile: poşta electronică (E-Mail), zone de informare (WWW, Gopher, FTP), Newsreader (cititor de ştiri); apariţia şi răspândirea site-urilor Web
- apariţia tehnologiei Java – în anul 1995 este lansat mediul de programare Java ce oferă suport dezvoltării de aplicaţii distribuite, independente de platformă; produs software evoluat al firmei Sun Microsystems moşteneşte conceptele de programare obiectuală de la limbajele C++, SmallTalk, Lisp
- lansarea ca sistem de operare a sistemului Windows - în anul 1995 a apărut sistemul de operare Windows 95 urmat de versiunile ulterioare 98, 2000; pentru reţelele de calculatoare a apărut începând cu anul 1992 Windows NT Workstation/Server; s-au dezvoltat sistemele de operare Netware, OS/2
- perfecţionarea şi utilizarea pe scară largă a pachetului Microsoft Office – mediile de programe aplicative Word, Excel, Access, Outlook, Power Point (1998)
- realizări hardware-software-platforme-aplicaţii - proiectare circuite integrate 3D, componente optice, arhitecturi paralele pentru prelucrarea inferenţelor, reţele din fibra optică de mare capacitate, reţele neuronale; sisteme de operare cu interfaţă evoluată cu utilizatorul, limbaje concurente, programare funcţională, prelucrare simbolică (limbaje naturale, recunoaşterea formelor: imagini/voce), Baze de date-Dbase, Foxpro, Oracle, Prolog, baze de cunoştinţe, sisteme expert evoluate, CAD, CAM, CAE, tehnologii multimedia, Realitate Virtuală, Tehnologii Web.
Proiecte europene de cercetare-dezvoltare (1990-2010)
Societatea Informaţiei Globale –
iniţiativă lansată în anul 1994 la summit-ul şefilor de state şi de guvern ai ţărilor G7 (azi, există G8, prin aderarea Rusiei), desfăşurat la Napoli; la “Conferinţa pentru Societatea Informaţională” de la Bruxelles din anul 1995, s-a analizat implementarea unei infrastructuri informaţionale competitive la nivel mondial ;
• Comunicaţiile în Societatea Informaţională – Conferinţa desfăşurată în anul 1997 în Estonia la care au participat 19 ţări;
• Proiectele Pilot G8 – în anul 1998 , grupul G7 la care s-a alăturat şi Rusia, a lansat Proiectele Pilot pentru dezvoltarea Societăţii Informaţionale în domeniile educaţiei, culturii, comerţului, mediului înconjurător, sănătăţii şi administraţiei publice;
• EURIDYCE – Technologies de In’formation et de la communication dans les systemes educatifs en Europe, Paris, 2000 (www.euridyce.org)
• eEurope şi eEurope+ – programe de acţiune lansate în anul 2001 la nivel european pentru ţările UE, dar şi pentru ţările în curs de aderare la UE (eEurope+) (www.europa.eu.int) ;
• Global Tera byte Recherche Network (GTREN) – program de acţiune lansat în 2002 pentru dezvoltarea infrastructurii de comunicaţii şi realizarea unei reţele Internet mai rapidă, mai sigură şi mai eficientă;
• eEurope 2005 – lansat în anul 2002, programul de acţiune “An Information Society for All” are două obiective majore: stimularea serviciilor, aplicaţiilor şi conţinutul informaţiei electronice, şi dezvoltarea infrastructurii în bandă largă şi creşterea securităţii informaţiei şi a reţelelor;
• Sixth Framework Programme (FP6)(2002-2006) – Programul cadru 6 al Uniunii Europene (www.cordis.lu/fp6/), lansat în anul 2002 este unul dintre cele mai complexe programe de cercetare, dezvoltare şi inovare. FP6 lansat pentru perioada 2002-2006 are direcţia 2 de prioritate: Information Society Technologies (IST - www.cordis.lu/ist/)
• Seventh Framework Programme (FP7)(2007-2013) – programul FP7 (http://www.cordis.lu/fp7/ ) pentru perioada 2007-2011 cu un buget de EUR 72 726 million - http://cordis.europa.eu/fp7/home_en.html
3. Proiectul Linux - din 1991 si alte proiecte: www.apache.org, http://fedoraproject.org, www.ubuntu.com.
- Linux: A Portable Operating System.
- 1991: studentul Linus Torvalds versus profesor Andrew Tanenbaum + open source
- Software Projects (The Apache Software Foundation Projects)
Nota de start: "Linux este un sistem de operare care a fost iniţial creat ca un hobby de către un tânăr student, Linus Torvalds, la Universitatea din Helsinki, în Finlanda. Linus a avut un interes în Minix, un mic sistem de operare derivat din UNIX, şi a decis să dezvolte un sistem care sa depăşeasca standardele Minix. Şi-a început activitatea sa în 1991, când a lansat versiunea 0.02 şi a lucrat în mod constant până în 1994, când versiunea 1.0 a kernel-ului Linux a fost lansata." + Comentariu (www.linux.ro) ... " ... isi continua calatoria in noul milenium cu acelasi entuziasm cu care a inceput intr-o zi frumoasa in 1991".
- Linus Torvalds: The 100 Most Influential Inventors of All Time as one of the most important and influential inventors.
Nota:
"
The Apache Software Foundation provides support for the Apache community of open-source software projects. The Apache projects are characterized by a collaborative, consensus based development process, an open and pragmatic software license, and a desire to create high quality software that leads the way in its field". (www.apache.org)
Nota: The Apache HTTP Server Project is a collaborative software development effort aimed at creating a robust, commercial-grade, featureful, and freely-available source code implementation of an HTTP (Web) server. In February of 1995, the most popular server software on the Web was the public domain HTTP daemon developed by Rob McCool at the National Center for Supercomputing Applications, University of Illinois, Urbana-Champaign. However, development of that httpd had stalled after Rob left NCSA in mid-1994, and many webmasters had developed their own extensions and bug fixes that were in need of a common distribution. - http://httpd.apache.org
Proiectul Gutenberg (1971): http://ro.wikipedia.org/wiki/Proiectul_Gutenberg
Concepte ce au revolutionat stiinte si au avut impact deosebit in planificarea, organizarea, executia si controlul activitatilor umane si nu numai.
O idee de start: Maureen Sprankle and Jim Hubbard, Ploblem Solving and Programming Concepts, Pearson - Prentice Hall, 2009, 8th ed.
O alta idee de start: În etapa actuală de dezvoltare ştiinţifică, tehnică, socială şi economică, rezolvarea unei probleme dintr-un domeniu (matematică, fizică, chimie, economie, medicină etc. ) reprezintă o activitate de creaţie, ce reclamă un raţionament sau mai multe, prin construirea, generarea, şi descrierea următoarelor procese (Link, M. Sudhanshu, 2006):
• proces demonstrativ (demonstraţia) care să arate existenţa unei soluţii sau a mai multor soluţii şi/sau să determine efectiv soluţiile exacte; în acest caz, specialistul sau expertul trebuie să aibă cunoştinţe solide de matematică şi implicit cunoştinţe corespunzătoare domeniului; rolul matematicii este esenţial;
• proces computaţional (algoritmul) care să codifice un proces demonstrativ, o metodă sau o tehnică de rezolvare în scopul determinării (eventual aproximative) a soluţiilor exacte; în acest caz, specialistul sau expertul trebuie să aibă experienţă în domeniul modelării şi utilizării calculatorului; rolurile informaticii şi ale IT (tehnologiei informaţiei) sunt esenţiale. ("De la teorema lui Green la geometria computaţională", CNIV 2006 )
Deoarece am folosit cuvintele "revolutionar, impact, deosebit", pentru argumentare, vom descrie 3 exemple:
1. Limbajele de programare (Programming Languages). Evolutia si utilizarea conceptelor de Algoritm si Proiect au contribuit la inventarea, conceperea, elaborarea, implementarea si utilizarea limbajelor de programare ce sunt limbaje artificiale (limbajele sunt instrumente ale gandirii, vezi "Limbaje si Cunoastere vs Modelare si Procesare", CNIV 2005, http://marinvlada.googlepages.com/Modelare_vlada.pdf).
Un limbaj de cunoaştere este sistemul virtual/logic
L = ( V, Sin, Sem, O, C, T, Tc) , unde
V = vocabular/alfabet, Sin = sintaxa (reguli), Sem = semantica (reguli), O = obiecte, C = concepte / termeni, T = teorii / metode / tehnici de rezolvare, Tc = tezaurul cunoaşterii (baza de cunoştinţe).
Este vorba de peste 2500 de limbaje de programare vechi si noi. (A Chronology of Influential Languages, Sursa: Maintained by Bill Kinnersley, University of Kansas)
- Complexitatea si varietatea este data de schema ce reprezinta evolutia limbajelor de programare (arborele genealogic). A History of Programming Languages (Programming paradigm):
• 1957 FORTRAN
• 1958 ALGOL • 1960 LISP
• 1960 COBOL • 1962 APL
• 1962 SIMULA • 1964 BASIC
• 1964 PL/I • 1966 ISWIM
• 1970 Prolog • 1972 C
• 1975 Pascal • 1975 Scheme
• 1977 OPS5 • 1978 CSP
• 1978 FP • 1980 dBASE II
• 1983 Smalltalk-80 • 1983 Ada
• 1983 Parlog • 1984 Standard ML
• 1986 C++ • 1986 CLP(R)
• 1986 Eiffel • 1988 CLOS • 1988 Mathematica
• 1988 Oberon • 1989 HTML • 1990 Haskell • 1994 Perl 5 • 1995 Java, Delphi • 1997 JavaScript, PHP • 2000 C# ...
- Dictionary of Programming Languages (Dictionary and script maintained by Neal Ziring)
Ca rezultat al unui "proiect" de cercetare pentru domeniul militar, savantul John von Neumann a conceput arhitectura unui calculator electronic (arhitectura von Neumann din 1945, raport de cercetare) ce ste valabila si astazi. Cu aceasta a inceput aventura construirii calculatoarelor moderne:
a) componentele de baza ale unui calculator: memorie, procesor, sisteme input/output
b) limbaje de programare si sisteme de operare
c) algoritmi de calcul si programe de aplicatii
S-a realizat o competitie intre componenta hardware (partea tehnologica) si componenta software (partea logica) a calculatoarelor. Aceasta evolutie si dezvoltare se poate intelege doar daca se scoate in evidenta evolutia conceptului de Algoritm si inventarea unei noi abordari privind activitatea de cunoastere a omului in aventura sa catre evolutie si dezvoltare: planificare, organizare, activitati, control, verificare, toate acestea reprezentand activitatea omului pe baza de Proiecte.
1950 - se inventeaza "diagrama Gantt" conceputa de Henry Gantt - întemeietorul managementului de proiect si considerat părintele planificării şi al tehnicilor de control.
- Vlada, M., Conceptul de algoritm-abordare modernă, Gazeta de informatică, vol. 13/ 2 si 3, 6 si 7 pp. 25-30, pp. 35-39, pag. 43-48, pag. 42-48 Agora, Cluj Napoca, 2003.
http://www.ginfo.ro/revista/13_2/babel.pdf
http://www.ginfo.ro/revista/13_3/babel.pdf
http://www.ginfo.ro/revista/13_6/babel.pdf
http://www.ginfo.ro/revista/13_7/babel.pdf
- Vlada M., Abordarea modernă a conceptului de algoritm, Conferinta Natională de Învătământ Virtual, editia a II-a, 2004, pag. 231-240 - http://marinvlada.googlepages.com/concept_algoritmi.pdf
2. Proiectul japonez (1981-1990) si proiectele europene (1990-2010).
Lansarea Proiectului japonez în anul 1981
Deceniul 8 al secolului XX-lea a fost unul al marilor succese în domeniul Inteligenţei artificiale, al dezvoltării reţelelor de calculatoare şi al răspândirii limbajelor de programare moderne.Lansarea Proiectului japonez în anul 1981 pentru construirea calculatorului de generaţia a V-a la începutul anilor ’90; acesta prevedea o revoluţie în domeniul calculatoarelor prin aşa-numitele sisteme de procesare a informaţiei de cunoaştere (KIPS-Knowledge Information Processing Systems); având finanţare guvernamentală de 1 miliard $ şi colaborarea mai multor firme japoneze importante, s-a înfiinţat un institut special ICOT (Institute for New Generation Computer Technology) care a editat revista internaţională "New Generation Computing" (www.ohmsha.co.jp/ngc), astăzi fiind una dintre cele mai prestigioase reviste din lume; proiectul a avut un impact deosebit pe plan mondial; începe să se predea Inteligenţa Artificială ca disciplină a Informaticii în învăţământul superior.
Aparitia produselor software - software engineering
Definiţie. Un produs software este un rezultat/produs obţinut în urma unui proces creativ uman, fiind un obiect/istrument utilitar, distinct şi identificabil individual ca element virtual/logic şi care fizic există în format electronic pe un suport de memorie magnetică/optică de tip FD (floppy disk), HD (hard disk), CD (compact disk) sau Memory Stick. Formatul electronic al produsului poate reprezenta: un program ce rezolvă anumite probleme, un sistem de operare, un compilator, un interpretor, un program convertor, un program utilitar, un mediu de operare, un mediu de programare, un mediu de rezolvare, o platformă, o procedură, un program editor, un generator de programe, un program ativirus, un document HTML/PHP/ASP, un program de e-mail, un browser etc.
Astăzi,
Conform definiţiei moderne a ingineriei software la baza elaborării unui produs software se află următoarele aspecte (I. Jurca, Programarea orientată pe obiecte în limbalul C++, Ed. Eurobit, Timişoara, 1992):
• Metode – cunoştinţe de specialitate (« know how ») privind planificarea, analiza cerinţelor, proiectarea, codificarea, testarea, utilizarea şi intreţinerea;
• Unelte – diverse tehnologii automate sau semiautomate ce oferă sprijin pentru metode (Exemplu : CASE-Computer Aided Software Engineering);
• Proceduri – realizează secvenţele prin care se vor aplica metodele, precum şi produsele ce execută ieşirile (rapoarte, documente, formulare etc.) .
La baza obţinerii produselor software se află evoluţia şi dezvoltarea limbajelor de programare.
În general, la baza evoluţiei societăţii omeneşti se află evoluţia şi dezvoltatea cunoaşterii umane. Cunoaşterea este dependentă de limbajele cunoaşterii (M. Vlada, CNIV 2005-2009).
Proiecte mondiale
Deceniul 9 al secolului XX-lea
-apariţia sistemului de operare Linux – în anul 1992 apare primul sistem de operare “free software” cu facilităţi deosebite pentru reţeaua Internet care utilizează protocoale de comunicaţii (TC/IP, FTP, IPX etc) pentru serviciile: poşta electronică (E-Mail), zone de informare (WWW, Gopher, FTP), Newsreader (cititor de ştiri); apariţia şi răspândirea site-urilor Web
- apariţia tehnologiei Java – în anul 1995 este lansat mediul de programare Java ce oferă suport dezvoltării de aplicaţii distribuite, independente de platformă; produs software evoluat al firmei Sun Microsystems moşteneşte conceptele de programare obiectuală de la limbajele C++, SmallTalk, Lisp
- lansarea ca sistem de operare a sistemului Windows - în anul 1995 a apărut sistemul de operare Windows 95 urmat de versiunile ulterioare 98, 2000; pentru reţelele de calculatoare a apărut începând cu anul 1992 Windows NT Workstation/Server; s-au dezvoltat sistemele de operare Netware, OS/2
- perfecţionarea şi utilizarea pe scară largă a pachetului Microsoft Office – mediile de programe aplicative Word, Excel, Access, Outlook, Power Point (1998)
- realizări hardware-software-platforme-aplicaţii - proiectare circuite integrate 3D, componente optice, arhitecturi paralele pentru prelucrarea inferenţelor, reţele din fibra optică de mare capacitate, reţele neuronale; sisteme de operare cu interfaţă evoluată cu utilizatorul, limbaje concurente, programare funcţională, prelucrare simbolică (limbaje naturale, recunoaşterea formelor: imagini/voce), Baze de date-Dbase, Foxpro, Oracle, Prolog, baze de cunoştinţe, sisteme expert evoluate, CAD, CAM, CAE, tehnologii multimedia, Realitate Virtuală, Tehnologii Web.
Proiecte europene de cercetare-dezvoltare (1990-2010)
Societatea Informaţiei Globale –
iniţiativă lansată în anul 1994 la summit-ul şefilor de state şi de guvern ai ţărilor G7 (azi, există G8, prin aderarea Rusiei), desfăşurat la Napoli; la “Conferinţa pentru Societatea Informaţională” de la Bruxelles din anul 1995, s-a analizat implementarea unei infrastructuri informaţionale competitive la nivel mondial ;• Comunicaţiile în Societatea Informaţională – Conferinţa desfăşurată în anul 1997 în Estonia la care au participat 19 ţări;
• Proiectele Pilot G8 – în anul 1998 , grupul G7 la care s-a alăturat şi Rusia, a lansat Proiectele Pilot pentru dezvoltarea Societăţii Informaţionale în domeniile educaţiei, culturii, comerţului, mediului înconjurător, sănătăţii şi administraţiei publice;
• EURIDYCE – Technologies de In’formation et de la communication dans les systemes educatifs en Europe, Paris, 2000 (www.euridyce.org)
• eEurope şi eEurope+ – programe de acţiune lansate în anul 2001 la nivel european pentru ţările UE, dar şi pentru ţările în curs de aderare la UE (eEurope+) (www.europa.eu.int) ;
• Global Tera byte Recherche Network (GTREN) – program de acţiune lansat în 2002 pentru dezvoltarea infrastructurii de comunicaţii şi realizarea unei reţele Internet mai rapidă, mai sigură şi mai eficientă;
• eEurope 2005 – lansat în anul 2002, programul de acţiune “An Information Society for All” are două obiective majore: stimularea serviciilor, aplicaţiilor şi conţinutul informaţiei electronice, şi dezvoltarea infrastructurii în bandă largă şi creşterea securităţii informaţiei şi a reţelelor;
• Sixth Framework Programme (FP6)(2002-2006) – Programul cadru 6 al Uniunii Europene (www.cordis.lu/fp6/), lansat în anul 2002 este unul dintre cele mai complexe programe de cercetare, dezvoltare şi inovare. FP6 lansat pentru perioada 2002-2006 are direcţia 2 de prioritate: Information Society Technologies (IST - www.cordis.lu/ist/)
• Seventh Framework Programme (FP7)(2007-2013) – programul FP7 (http://www.cordis.lu/fp7/ ) pentru perioada 2007-2011 cu un buget de EUR 72 726 million - http://cordis.europa.eu/fp7/home_en.html
3. Proiectul Linux - din 1991 si alte proiecte: www.apache.org, http://fedoraproject.org, www.ubuntu.com.
- Linux: A Portable Operating System.

- 1991: studentul Linus Torvalds versus profesor Andrew Tanenbaum + open source
- Software Projects (The Apache Software Foundation Projects)
Nota de start: "Linux este un sistem de operare care a fost iniţial creat ca un hobby de către un tânăr student, Linus Torvalds, la Universitatea din Helsinki, în Finlanda. Linus a avut un interes în Minix, un mic sistem de operare derivat din UNIX, şi a decis să dezvolte un sistem care sa depăşeasca standardele Minix. Şi-a început activitatea sa în 1991, când a lansat versiunea 0.02 şi a lucrat în mod constant până în 1994, când versiunea 1.0 a kernel-ului Linux a fost lansata." + Comentariu (www.linux.ro) ... " ... isi continua calatoria in noul milenium cu acelasi entuziasm cu care a inceput intr-o zi frumoasa in 1991".
- Linus Torvalds: The 100 Most Influential Inventors of All Time as one of the most important and influential inventors.
Nota:
"
The Apache Software Foundation provides support for the Apache community of open-source software projects. The Apache projects are characterized by a collaborative, consensus based development process, an open and pragmatic software license, and a desire to create high quality software that leads the way in its field". (www.apache.org)Nota: The Apache HTTP Server Project is a collaborative software development effort aimed at creating a robust, commercial-grade, featureful, and freely-available source code implementation of an HTTP (Web) server. In February of 1995, the most popular server software on the Web was the public domain HTTP daemon developed by Rob McCool at the National Center for Supercomputing Applications, University of Illinois, Urbana-Champaign. However, development of that httpd had stalled after Rob left NCSA in mid-1994, and many webmasters had developed their own extensions and bug fixes that were in need of a common distribution. - http://httpd.apache.org
Thursday, April 26, 2007
VRRM 2007 - International Workshop
VIRTUAL REALITY IN REHABILITATION MEDICINE
FIRST ANNOUNCEMENT | CALL FOR PARTICIPATION | Link (.pdf)
International Workshop
VIRTUAL REALITY IN REHABILITATION MEDICINE - VRRM 2007
URL: www.icvl.eu/2007/vrrm
September 24-25 2007, Bucharest , ROMANIA
Subscribe to:
Posts (Atom)